2013-04-14 6 views
9

Jestem tu trochę zakłopotany. Stworzyłem bazę danych i nie miałem problemów z bazą danych depot_production. Jednak ostatnio, gdy biegnę testu natarcia, mam kilka błędów jakMysql2 :: Błąd: Odmowa dostępu dla użytkownika 'test' @ 'localhost' do bazy danych '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' 

Najdziwniejsze jest to, myślę mój plik database.yml jest w porządku. I za każdym razem, gdy uruchamiam db: migrate, po prostu otrzymuję pustą linię zwróconą do mnie. Dodałem także test użytkownika, ale myślę, że dodałem go tylko do mojej bazy danych programistycznych. Myślę, że mój test i produkcja oraz bazy danych nie istnieją ...

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 

Każda rada byłaby doceniona, dziękuję.

Dzięki za trzymanie się ze mną tutaj. Czuję, że jestem blisko, ale coś jest dziwne. Oto co zrobiłem.

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

należy udzielić użytkownikowi pozwolenia "test", aby zmienić "test depot" – 1337holiday

Odpowiedz

19

więc najpierw zalogować się jako korzenia lub niezależnie od użytkownika root jest wywoływana z terminala.

mysql -u root -p 

CREATE DATABASE depot_test 

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

USE depot_test 

Po zalogowaniu się do mysql, przyznać uprawnienia użytkownika test (pamiętaj, aby zmienić hasło)

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

FLUSH PRIVILEGES; 

Trzeba będzie zmienić przepustkę do „mypass123” w database.yml

+0

Dzięki! Próbowałem i otrzymałem następujące. BŁĄD 1046 (3D000): Nie wybrano żadnej bazy danych – DynastySS

+0

o tak, musisz wybrać bazę danych 'depot_test', patrz edycja – 1337holiday

+0

Niestety, wiadomość była za długa. Zmieniłem mój oryginalny wpis i dodałem go. Dzięki! – DynastySS

Powiązane problemy