Ошибка создания Rails DB с помощью rake db: create - PullRequest
3 голосов
/ 20 апреля 2010

Я пытаюсь получить мой первый пример рельсов "hello world", используя руководство по началу работы с rails на моем OSX 10.6.3.

Когда я иду выполнить первую команду rake db:create (я использую mysql), я получаю:

simon@/Users/simon/source/rails/blog/config: rake db:create  (in /Users/simon/source/rails/blog) Couldn't create database for {"reconnect"=>false, "encoding"=>"utf8", "username"=>"root", "adapter"=>"mysql", "database"=>"blog_development", "pool"=>5, "password"=>nil, "socket"=>"/opt/local/var/run/mysql5/mysqld.sock"}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation)

Я нашел много вопросов о стековом потоке, решающих эту проблему со следующим советом:

  1. Убедитесь, что имя пользователя и пароль верны (я использую пароль w / no для root в моем устройстве dev)

  2. Убедитесь, что сокет правильный - я могу отследить сокет, поэтому я предполагаю, что он правильный

  3. Убедитесь, что пользователь может создать БД (как вы видите, root может подключиться и создать эту БД без проблем)

    simon @ / Users / simon / source / rails / blog / config: mysql -uroot -hlocalhost Добро пожаловать на монитор MySQL. Команды заканчиваются на; или \ g. Ваш идентификатор соединения MySQL - 16 Версия сервера: 5.1.45 Исходный дистрибутив

    Введите 'help;' или '\ h' за помощь. Введите '\ c', чтобы очистить текущий оператор ввода.

    mysql> создать базу данных blog_development; Запрос в порядке, затрагивается 1 строка (0,00 с)

, чтобы убедиться, что это не проблема с кодировкой, я также попытался:

mysql> create database foobar CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

Примечание: вот мой database.yaml:

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: blog_development
  pool: 5
  username: root
  password:
  socket: /opt/local/var/run/mysql5/mysqld.sock
#  host: localhost

Обратите внимание, что я попытался переключить сокет на localhost безрезультатно.

Есть идеи о том, что здесь может происходить?

Ответы [ 6 ]

5 голосов
/ 20 апреля 2010

Спасибо за помощь, ребята. Похоже, проблема была связана с моей установкой mysql gem под OSX.

@ tim после того, как я перешел к следующему шагу и встал и пошел, я получил ошибку на консоли, поэтому я немного поискал и нашел полезную ветку .

После того, как я удалил свои камни ruby ​​gem uninstall mysql Я установил правильные камни mysql, используя эту команду (из потока):

export ARCHFLAGS="-arch i386 -arch x86_64" ; gem install --no-rdoc --no-ri mysql -- --with-mysql-dir=/opt/local/lib/mysql5 --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config

После выполнения этого я смог успешно запустить rake db:create и продолжить.

Спасибо !!

2 голосов
/ 20 апреля 2010

Это может быть несколько вещей.

  • Ваша база данных установлена ​​для набора символов utf8?
  • Является ли путь к сокету правильным, поскольку он отличается от ОС.
  • Вы переустанавливали самоцвет mysql? sudo gem install mysql
  • Это может быть MySQL, вы можете понизить версию до 5.0

Кроме этого, я не уверен.

1 голос
/ 20 апреля 2010

Вы должны опубликовать здесь свой database.yml

Чтобы сделать ваш тест лучше, я бы попытался создать базу данных UTF-8, чтобы посмотреть, поддерживает ли ваша база данных utf-8

create database foobar CHARACTER SET utf8 COLLATE utf8_general_ci
0 голосов
/ 21 сентября 2010

Переустановите mysql-сервер и mysql-клиент с помощью этой команды:

sudo apt-get install mysql-server mysql-client

, а затем некоторые библиотеки, которые необходимо установить, чтобы MySQL был доступен для ruby:

sudo apt-get install libmysql-ruby

Это все решило мою проблему. Попытайся !!! :)

0 голосов
/ 14 мая 2010

У меня просто была та же проблема: это был старый камень mysql, который не был обновлен. Переустановка самоцвета mysql сделала свое дело.

0 голосов
/ 20 апреля 2010

База данных blog_development уже существует?

Если это так, вы можете просто перейти к следующему шагу.

Попробуйте запустить ruby script/server в каталоге blog/.

Если это не выдает ошибку, тогда вы сможете перейти к localhost:3000 и продолжить обучение здесь

Оставьте мне комментарий, если ruby script/server выдает ошибку.

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