2011-04-07 15 views
7

Estoy tratando de obtener una aplicación de rieles en mi computadora, y tengo problemas para crear las bases de datos. He instalado/configurado correctamente los rieles, mysql y he instalado la gema mysql 2.8.1 (he verificado esto con la lista de gemas).No se puede rastrear db: create: all - No se pudo crear la base de datos para {"encoding" => "utf8", "username" => "root", "adapter" => "mysql"

Así mismo, estoy tratando de correr 'rake db: crear: todo' y estoy consiguiendo el error siguiente:

Couldn't create database for {"encoding"=>"utf8", "username"=>"root", "adapter"=>"mysql", "database"=>"pyo", "host"=>"localhost", "password"=>nil, "socket"=>"/tmp/mysql.sock"}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation)

Couldn't create database for {"encoding"=>"utf8", "username"=>"root", "adapter"=>"mysql", "database"=>"pyo_test", "host"=>"localhost", "password"=>nil, "socket"=>"/tmp/mysql.sock"}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation)

Actualmente estoy corriendo 5.5.10 MySQL Community Server (GPL) en Snow Leopard (10.6.6)

Y aquí es lo que está en mi archivo database.yml

development: 
    adapter: mysql 
    encoding: utf8 
    database: pyo 
    username: root 
    password: 
    socket: /tmp/mysql.sock 
    host: localhost 

test: 
    adapter: mysql 
    encoding: utf8 
    database: pyo_test 
    username: root 
    password: 
    socket: /tmp/mysql.sock 
    host: localhost 

noto cómo el fin del error dice "juego de caracteres: UTF-8, el cotejo: utf8_unicode_ci (si configura el juego de caracteres manualmente, ma ke seguro que tienes una intercalación correspondiente) "- ¿Ese es el problema? Y si es así, ¿cómo lo arreglo?

Me he quedado atrapado en esto durante horas y no encuentro nada que ayude en Google. Entonces, cualquier ayuda en este punto sería muy apreciada.

Gracias!

+0

has encontrado una solución para eso ¿problema? con una explicación significativa? –

Respuesta

0

Así que, después de unos 3 o 4 días de googlear y tratar tantas cosas diferentes, me encontré con esto de alguna manera:

http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/

Y adivina qué? ¡FUNCIONA! PERFECTAMENTE. Lo que me lleva a creer que el problema se encuentra dentro de MySQL 5.5.10. Algo sobre esto no solo se jugará bien con mi entorno ruby ​​/ rails. Sin embargo, una vez que seguí las instrucciones en el enlace de arriba (que incluyen desinstalar mysql y volver a instalar 5.1), mi aplicación ahora funciona perfectamente en mi máquina local.

Espero que esto ayude a alguien!

2

pensar que tenía algo como esto ... fijado por la adición de este a database.yml:

host: 127.0.0.1 

o en su caso, cambiándolo de localhost.

+0

Lo intenté, no funcionó :( – DeG

+0

Encontré un mensaje de error similar hoy y este método funcionó para mí, gracias. – Bryan

+0

Esto lo hizo funcionar para mí. –

2

Estaba teniendo el mismo problema con la gema mysql2. Luego descubrí que MySQL está escuchando en 'localhost' solamente y no en '127.0.0.1', así que lo cambié a 'localhost' y ahora ya no me aparece ese problema. Todo funciona ahora

2

Sé que este hilo es viejo pero al ser un chico de TI que cree en mantener una buena documentación sólida en un solo lugar aquí va:

el problema se deriva en realidad de su archivo "config/database.yml". Está señalando ROR a la ubicación incorrecta para el Socket MySQL.

Me encontré con este problema y lo que resultó ser que la gema se construyó en un sistema mac y el desarrollador no tuvo en cuenta otros sistemas operativos al poner su archivo "mysql.sock" en "/ tmp" directorio en lugar de "/var/run/mysqld/mysqld.sock".

Así que su "base de datos.archivo yml" que parecía:

development: adapter: mysql2 #encoding: utf8 database: somedatabase pool: 5 username: someusername password: somepassword socket: /tmp/mysql.sock

porque yo estaba en un sistema Ubuntu que tenía que cambiar de minas a lo siguiente:

development: adapter: mysql2 #encoding: utf8 database: somedatabase pool: 5 username: someusername password: somepassword socket: /var/run/mysqld/mysqld.sock

Si el error puede ser engañoso, sin embargo no tiene nada que ver con su "codificación" o si está utilizando localhost o 127.0.0.1 (Al menos en sistemas Linux/UNIX estos se traducen en lo mismo y también)

Begin Edición

Además, no es bueno tener que codifican comentado como yo anteriormente. Así que estoy proporcionando la modificación aquí para referencia.

development: adapter: mysql2 encoding: utf8 database: somedatabase pool: 5 username: someusername password: somepassword socket: /var/run/mysqld/mysqld.sock

Fin Editar

0

Quiero compartir mi solución. tuve mi database.yml como sigue

default: &default 
    adapter: mysql2 
    encoding: utf8 
    username: root 
    password: 
    host: 127.0.0.1 
    port: 3306 

development: 
    <<: *default 
    database: dev.database 

Mi error fue en esta línea

database: dev.database 

Por lo tanto, escribir sin (.)

database: devdatabase 
Cuestiones relacionadas