2013-04-14 3 views
9

Ich bin ein wenig ratlos hier. Ich habe eine Datenbank erstellt und hatte keine Probleme mit der Datenbank depot_production. Doch in der letzten Zeit, wenn ich Rake Test ausführen, bekomme ich ein paar Fehler wieMysql2 :: Fehler: Zugriff verweigert für Benutzer 'test' @ 'localhost' zu Datenbank 'depot_test'

# Running tests: 

EEEEEEEE 

Finished tests in 0.031499s, 253.9763 tests/s, 0.0000 assertions/s. 

1) Error: 
test_should_create_product(ProductsControllerTest): 
Mysql2::Error: Access denied for user 'test'@'localhost' to database 'depot_test' 

Das Seltsame ist, ich glaube, meine database.yml Datei ist in Ordnung. Und jedes Mal, wenn ich db: migrate starte, bekomme ich einfach eine leere Zeile zurück. Ich fügte auch einen Benutzertest hinzu, aber ich denke, dass es nur meiner Entwicklungsdatenbank hinzugefügt wurde. Ich denke, meine Test-und Produktions-und Datenbanken gibt es nicht ...

development: 
adapter: mysql2 
encoding: utf8 
reconnect: false 
database: depot_development 
pool: 5 
username: root 
password: admin 
socket: /tmp/mysql.sock 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
adapter: mysql2 
encoding: utf8 
reconnect: false 
database: depot_test 
pool: 5 
username: test 
password: testy 
socket: /tmp/mysql.sock 

production: 
adapter: mysql2 
encoding: utf8 
reconnect: false 
database: depot_production 
pool: 5 
username: prod 
password: mypassword 
socket: /tmp/mysql.sock 

Jeder Rat würde uns freuen, danke.

Danke, dass Sie hier bei mir bleiben. Ich fühle mich wie nahe, aber etwas ist seltsam. Hier ist was ich getan habe.

mysql> use depot_test; 
ERROR 1049 (42000): Unknown database 'depot_test' 
mysql> show databases; 
+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| depot_development | 
| development  | 
| mysql    | 
| performance_schema | 
| test    | 
+--------------------+ 
6 rows in set (0.01 sec) 

mysql> use depot_test 
ERROR 1049 (42000): Unknown database 'depot_test' 
mysql> use test 
Database changed 
mysql> GRANT SELECT, INSERT, DELETE ON `test` TO [email protected]'localhost' IDENTIFIED BY 'testy'; 
ERROR 1146 (42S02): Table 'test.test' doesn't exist 
mysql> GRANT SELECT, INSERT, DELETE ON `depot_test` TO [email protected]'localhost' IDENTIFIED BY  'testy'; 
ERROR 1146 (42S02): Table 'test.depot_test' doesn't exist 
+0

Sie müssen Berechtigungen für den Benutzer "test" erteilen, um "depot_test" zu ändern – 1337holiday

Antwort

19

So Erstanmeldung als Wurzel oder was auch immer Ihr Root-Benutzer von Terminal genannt wird.

mysql -u root -p 

CREATE DATABASE depot_test 

CREATE USER 'test'@'localhost' IDENTIFIED BY 'mypass123'; 

USE depot_test 

Sobald Sie sich in mysql angemeldet sind, gewähren Privilegien für den Benutzer test (nicht vergessen, Passwort zu ändern)

GRANT ALL privileges on depot_test.* to [email protected] identified by 'mypass123'; 

FLUSH PRIVILEGES; 

Sie müssen Ihren Pass zu "mypass123" in Ihrem database.yml ändern

+0

Danke! Ich habe versucht und habe folgendes bekommen. FEHLER 1046 (3D000): Keine Datenbank ausgewählt – DynastySS

+0

oh yea, Sie müssen die 'depot_test' Datenbank auswählen, siehe Bearbeiten – 1337holiday

+0

Entschuldigung, die Nachricht war zu lang. Ich habe meinen ursprünglichen Beitrag bearbeitet und hinzugefügt. Vielen Dank! – DynastySS

Verwandte Themen