MySQL: GRANT ALL — Access denied for user root@localhost


Tagged , ,

Словил ошибку при передаче привилегий новосозданному пользователю.

GRANT ALL ON *.* TO 'admin'@'localhost';
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Хотя при этом был залогинен как mysql root. Причина оказалась в следующем:
На этом сервере база mysql(системная, которая хранит учетки) была не родная, а импортирована со старого сервера, который выводится из эксплуатации. Дабы не создавать учетки, решили просто перекинуть базу целиком. Оказалось, что на старом сервере довольно старый mysql, а таблица mysql.users на новом сервере была больше на несколько полей, но перетерлась старой таблицей. По этой причине, можно было назначать конкретные привилегии(CREATE, DELETE и т.д.), но нельзя было скомандовать ALL.

Решение: я сделал самым примитивным образом, т.к. новый сервер еще не введен в эксплуатацию, то я просто переписал снова базу mysql, взяв ее с третьего сервера. Версии mysql с нового и третьего сервера совпадают.

thirdserv# mysqldump -u root -p mysql > mysql.sql
thirdserv# scp mysql.sql user@newdb:

И на сервере новой бд:
newdb$ mysql -u root -p mysql < mysql.sql

Пароль от рута становится такой же как на третьем сервере. Нужные учетки создал уже вручную.

Share:

No comments

RSS / trackback

Respond