Как я могу работать с привилегиями root @ localhost в MySQL? - PullRequest
2 голосов
/ 04 мая 2011

Я пытаюсь выполнить инструкцию GRANT ALL:

GRANT ALL ON daisyrepository.* TO daisy@localhost IDENTIFIED BY 'password_here';

Я выполнил эту инструкцию на самом сервере с помощью удаленного рабочего стола, используя:

  • PHPMyAdmin
  • MySQL Administrator
  • Клиент командной строки

Каждый раз, когда я запускаю этот оператор, я получаю следующую ошибку:

ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'daisyrepository'

Немного информации относительнопривилегии:

root @%

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, EXECUTE 

root @ localhost

ALL PRIVILEGES 

Если я правильно понимаю, даже если я подключен к серверу, MySQL лечитмои заявления, как будто я пришел из удаленного места?

Edit # 1 Clafification: сервер, к которому я подключен, - это то, где MySQL также работает.

Edit # 2 Попав в RDP, я захожу в MySQL с помощью командной строки.Если я запускаю select current_user (), я получаю root@127.0.0.1.В файле my.ini также есть skip_name_resolve.

1 Ответ

4 голосов
/ 06 мая 2011

Вы, кажется, всегда подключаетесь по TCP (а не по сокетам Unix в Linux или по именованным каналам в Windows).Поскольку в вашем ini-файле есть skip_name_resolve, сервер не возвращает DNS ip 127.0.0.1 обратно на localhost, поэтому пользователь, которого вы представляете как root@127.0.0.1, а не root@localhost.

ЕслиВы можете удалить skip_name_resolve из ini-файла и убедиться, что Abe Petrillo упомянул, что у вас есть «127.0.0.1 localhost» в вашем файле hosts.Это должно позволить вам подключиться как root @ localhost.Если вам нужно вернуть skip_name_resolve, убедитесь, что вы запустили

GRANT ALL on *.* to 'root'@'127.0.0.1' identified by '$roots_password' WITH GRANT OPTION;

, что позволит вам добавить skip_name_resolve обратно в ваш INI-файл.

...