Pico
Joined: 18 Jan 2004
Posts: 248
Location: HostMachine.net
|
Posted: 18.12.2006, 04:32 Post subject: 1044 - Access denied for user 'root'@'localhost' to database |
|
|
Pri selitvi ali inštalaciji MySQL strežnika verzije 5.0.x in ob selitvi starih baz in uporabnikov, pride včasih do situacije, ko tudi sam administrator kot root ne more izvršiti določenih operacij na bazi, na primer REVOKE ali GRANT PRIVILEGES.
Pri tem naletimo na napako: Code: 1044 - Access denied for user 'root'@'localhost' to database
ali
1044 - Access denied for user 'root'@'%' to database
Kar nekaj časa sem se ubadal s problemom in sem najprej poskusil popraviti MYSQL PRIVILEGES TABLE s priloženo skripto:
Code: > mysql -u root -p
Enter Password: *******************
mysql>
mysql> SOURCE scripts/mysql_fix_privilege_tables.sql
Vendar ni pomagalo.
BTW - skripto mysql_fix_privilege_tables.sql lahko brez strahu zaženete, tudi če ni nič narobe.
Potem sem se pa spravil ročno urejat MYSQL bazo privilegijev:
1.) odprl sem bazo mysql in tabelo user in za uporabnika "root" ročno popravil naslednja polja:
Create_view_priv enum -> Y
Show_view_priv enum -> Y
Create_routine_priv enum -> Y
Alter_routine_priv -> Y
2.) Potem sem osvežil privilegije:
Code: mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
3.) ...in preveril, če mi za uporabnika "root" kaže ALL PRIVILEGES:
Code: mysql> SHOW GRANTS;
+-------------------------------------------------------------------------------
-------------------------------------------------+
| Grants for root@%
|
+-------------------------------------------------------------------------------
-------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*LTZIRVWXWE9E
3D38F366DGHZE8433LWASACEDE7CB10' WITH GRANT OPTION |
+-------------------------------------------------------------------------------
-------------------------------------------------+
1 row in set (0.00 sec)
S tem je problem rešen.
Ergo: uporabnik "root" MORA imeti ALL PRIVILEGES! |
|