Я пытаюсь запустить свой первый пример рельсов «hello world», используя руководство по началу работы на моем компьютере с 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)
Я нашел множество вопросов stackoverflow, посвященных этой проблеме, со следующими советами:
Убедитесь, что пользователь и пароль верны (я работаю без пароля для root на моем ящике разработчика)
Убедитесь, что сокет правильный - я могу указать сокет, поэтому я предполагаю, что он правильный
Убедитесь, что пользователь может создать БД (как видите, root может подключиться и создать эту БД без проблем)
simon@/Users/simon/source/rails/blog/config: mysql -uroot -hlocalhost Добро пожаловать в монитор MySQL. Команды заканчиваются на ; или \г. Ваш идентификатор подключения к MySQL — 16. Версия сервера: 5.1.45 Исходный дистрибутив.
Введите «помощь»; или '\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)
Примечание: вот моя база данных.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
Обратите внимание, что я пытался переключить сокет на локальный хост безрезультатно.
Любая идея о том, что может происходить здесь?