Создание суперпользователя в 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 ответа
Пришлось обойти грантовые таблицы в итоге. Посмотреть здесь:
о том, как это сделать
Привилегии в MySQL связаны как с "именем пользователя", так и с "хостом". Хост может быть доменным именем, IP-адресом или "localhost". Любой из них может включать подстановочный знак %, Если вы подключаетесь не из того места, даже с правильным именем пользователя и паролем, вы все равно получите ошибку "Отказано в доступе".
Каждый из этих разных пользователей может иметь разный доступ к различным базам данных, таблицам, строкам и командам.
Также стоит отметить, что "127.0.0.1" - это не то же самое, что "localhost" при использовании mysql клиент в командной строке будет использовать сокет, а не IP для подключения. Если вы хотите использовать IP для подключения при использовании mysql клиент на сервере MySQL, вы можете указать -h <IP address>,
Чтобы увидеть всех разных "пользователей":
SELECT user,host,password FROM mysql.user;