Создание суперпользователя в MySQL 5.5 не работает: в праве root@localhost отказано

Используя CentOS 6, вошли в MySQL как root, введя команду:

create user 'user123' identified by 'pass123';

работает отлично. Но когда я пытаюсь дать этому пользователю super user privileges с:

grant all on *.* to 'user123' identified by 'pass123';

Я получаю ошибку:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

затем

select * from mysql.user;

показывает, что root имеет Y во всех столбцах, поэтому должен иметь все привилегии.

Я был бы очень признателен, если бы кто-нибудь мог помочь мне выяснить, почему root не может предоставить привилегии, так как я не могу понять, почему это не будет работать.

Спасибо

2 ответа

Решение

Пришлось обойти грантовые таблицы в итоге. Посмотреть здесь:

https://stackoverflow.com/questions/10130296/mysql5-as-root-cant-create-database-or-do-anything-access-denied

о том, как это сделать

Привилегии в MySQL связаны как с "именем пользователя", так и с "хостом". Хост может быть доменным именем, IP-адресом или "localhost". Любой из них может включать подстановочный знак %, Если вы подключаетесь не из того места, даже с правильным именем пользователя и паролем, вы все равно получите ошибку "Отказано в доступе".

Каждый из этих разных пользователей может иметь разный доступ к различным базам данных, таблицам, строкам и командам.

Также стоит отметить, что "127.0.0.1" - это не то же самое, что "localhost" при использовании mysql клиент в командной строке будет использовать сокет, а не IP для подключения. Если вы хотите использовать IP для подключения при использовании mysql клиент на сервере MySQL, вы можете указать -h <IP address>,

Чтобы увидеть всех разных "пользователей":

SELECT user,host,password FROM mysql.user;
Другие вопросы по тегам