2014-01-31 1 views
0

С панели управления моего веб-сайта я создал новую базу данных MySQL (5) Test и новый пользователь admin с паролем 123. Я попытался назначение привилегий пользователю admin с помощью:Предоставить пользователю права в MySQL

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' 

или

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'Test' 

я получаю следующее сообщение об ошибке:

#1045 - Access denied for user 'admin'@'%' (using password: YES)

мне нужны следующие привилегии для пользователя admin:

CREATE, ALTER, DELETE, INSERT, SELECT, UPDATE, LOCK TABLES

Как это сделать в запросе phpMyAdmin?

+0

У вас раскрасневшиеся привилегии? –

+0

Вы также можете вручную изменить свои права в 'mysql.user' –

+0

@h. Раньше я никогда не использовал MYSQl. Я не кодер. Что мне делать? Я сделал несколько поисков, но я не поступаю правильно. – Nullbyte

ответ

0

После выполнения этих операторов пытаются выполнить FLUSH:

FLUSH PRIVILEGES; 

MYSQL Reference Manual От:

(...) If you change the grant tables directly but forget to reload them, your changes have no effect until you restart the server. This may leave you wondering why your changes do not seem to make any difference!

To tell the server to reload the grant tables, perform a flush-privileges operation. (...)

1

Я предполагаю, что вы пытаетесь изменить привилегии 'admin'@''%' после входа в систему как пользователь. Это странно.

Вы можете отобразить, какой пользователь вы вошли в систему с помощью

SELECT USER(); 

Затем проверить гранты, что счет уже есть:

SHOW GRANTS FOR 'admin'@''%'; 

Мы пришли к выводу, у вас есть

GRANT ALL PRIVILEGES ON `Test`.* TO 'admin'@'%' 

Это говорит о том, что у вас уже есть все привилегии для всех таблиц в базе данных Test. Однако вы не можете предоставлять эти привилегии другим пользователям (в противном случае это будет WITH GRANT OPTION).

Во время установки MySQL пользователь root всегда создается. Используйте его для предоставления привилегий другим учетным записям.

Более подробная информация в руководстве: