2012-01-12 4 views
4

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

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

Я также попытался локальный вместо 127.0.0.1, оба дают мне ошибки при попытке создать БД, выполнив «расслоение Exec грабли БД: создать» ... я получаю это ошибка:

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 
+0

Вы подтвердили, что данные верны? (Вы можете показать нам сеанс терминала, который вы успешно подключились к базе данных?) –

+0

Можете ли вы подключиться к MySQL непосредственно на своем терминале, запустив mysql -uroot ?. Также попробуйте «localhost» вместо 127.0.0.1 –

+0

Попробуйте либо mysqld_safe, либо sudo mysqld_safe с терминала. Ваша база данных не запущена. –

ответ

3

Try:

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/

+0

Нет, я получаю ту же ошибку: не удается подключиться к локальному серверу MySQL через сокет '/tmp/mysql.sock' (2) как я могу узнать, что положить база данных: поле без фактического создания базы данных? в основном, я просто клонировал это репо и пытался заставить его работать. У меня нет базы данных, и у меня нет правильной настройки database.yml. Каков шаг за шагом, чтобы заставить это работать? Я собрал все, и все прошло отлично. –

+0

Я сделал файл database.yml точно так же, как вы показали. Затем я связал exec rake db: create (необходимый пакетный exec), но я получаю эту ошибку: не удается подключиться к локальному серверу MySQL через сокет '/tmp/mysql.sock' (2). Я не уверен, как это сделать «в mysql» –

+0

Добавлен сокет: /var/lib/mysql/mysql.sock в файл yml и получил эту ошибку: невозможно подключиться к локальному серверу MySQL через socket '/ var/lib /mysql/mysql.sock '(2) –

0

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

mysql -u root 

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

create database app_development; 

И последнее, но не менее, удалить префикс «дб /» от database.yml. Вам не нужен полный путь:

database: app_development 

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

1

Явное говоря уже о вашем port: 3306 в вашем database.yml

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

netstat -tupln 

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

0

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

Попробуйте подражать базе данных по умолчанию рельсов.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

Его также можно решить, изменив версию MySQL. Имел ту же проблему с некоторым проектом, который был разработан с использованием MySQL 5.5, но установленная версия в моем mac была MySQL 5.7, поэтому мне пришлось понизить мою версию, и это сработало для меня.

Смежные вопросы