Не удается подключиться к серверу MySQL на 127.0.0.1 - PullRequest
4 голосов
/ 12 января 2012

Я пытаюсь клонировать репо и запустить его на моей локальной машине.У меня нет созданной БД, и я пытаюсь вручную создать свой файл database.yml (я делаю это впервые).Я не совсем уверен, что я делаю, и продолжаю получать ошибки при подключении к серверу MySql.Вот мой файл database.yml:

development:
  adapter: mysql
  host: 127.0.0.1
  database: db/app_development
  username: root
  password: 

Я также попытался использовать localhost вместо 127.0.0.1, оба выдают ошибки при попытке создать базу данных, выполнив команду «bundle exec rake db: create» ... iполучите эту ошибку:

Can't connect to MySQL server on '127.0.0.1' (61)
Couldn't create database for {"username"=>"root", "adapter"=>"mysql", "database"=>"db/app_development", "host"=>"127.0.0.1", "password"=>nil}, charset: utf8, collation: utf8_unicode_ci

Я знаю, что делаю что-то не так, но не могу понять, что это такое.Нужно ли запускать сервер MySQL или что-то?

Это вывод при запуске mysqld_safe:

120111 20:35:39 mysqld_safe Logging to '/usr/local/var/mysql/Matthew-Bermans-MacBook-Air.local.err'.
120111 20:35:39 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
120111 20:35:41 mysqld_safe mysqld from pid file /usr/local/var/mysql/Matthew-Bermans-MacBook-Air.local.pid ended

Ответы [ 5 ]

3 голосов
/ 12 января 2012

Попробуйте:

development:
  adapter: mysql
  database: app_development
  username: root
  password: 
  socket: /var/lib/mysql/mysql.sock

Затем выполните rake db:create, чтобы создать его из рельсов.
или
в MySQL сделать create database db_name
а затем приведенный выше код для :development позволит вам использовать его.

Обновление: Сначала Мэтью необходимо установить mySQL на его (Mac) компьютер.
Я направил его на http://dev.mysql.com/downloads/mysql/

1 голос
/ 12 января 2012

Явно укажите ваш port: 3306 в вашем database.yml

Если это не сработает, тогда выполните

netstat -tupln

и проверьте, прослушивает ли MySQL порт 3306 или нет

0 голосов
/ 06 октября 2017

Это также можно решить, изменив версию MySQL.У меня была та же проблема с каким-то проектом, который был разработан с использованием MySQL 5.5 , но в моем Mac была установлена ​​версия MySQL 5.7, поэтому мне пришлось понизить версию, и она работала для меня.

0 голосов
/ 12 января 2012

Если вы не возражаете против того, какое программное обеспечение для баз данных вы используете (я не думаю, что вы указали, нужен ли вам MySQL или вы просто хотите, чтобы репо работало), вы можете вместо этого попробовать SQLite3. SQLite3 не запускает сервер и не использует порты, поэтому вам может быть проще получить настройки.

Попробуйте имитировать rails default database.yml, который выглядит следующим образом:

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

Затем добавьте gem 'sqlite3' в ваш Gemfile и запустите bundle install

Надеюсь, это поможет!

0 голосов
/ 12 января 2012

Прежде всего, попробуйте выполнить следующее, чтобы проверить, есть ли у вас подключение к mysql из командной строки (без Ruby on Rails).

mysql -u root

Если не удается подключиться, возможно, вы указали и пароль.Вам нужно будет либо запомнить его, либо переустановить MySQL.Если вы можете, то создайте свою базу данных:

create database app_development;

Последнее, но не менее важное, удалите префикс 'db /' из database.yml.Вам не нужен полный путь:

database: app_development

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...