2013-08-20 3 views
10

я сделал следующие шаги, чтобы использовать MySQL в Ubuntu:MYSQL Доступ запрещен для пользователя 'корень' @ 'локальный'

sudo aptitude install php5-mysql mysql-server 
sudo service mysql stop 
sudo mysqld_safe --skip-grant-tables & 
sudo mysql -u root mysql 

Изменить пароль суперпользователя:

mysql> UPDATE mysql.user SET Password=PASSWORD('SecurePassword') WHERE 
User='root'; 
mysql> FLUSH PRIVILEGES; 
mysql> EXIT 

Изменить/и т.д./MySQL/my.cnf:

[client] 
user=root 
password=SecurePassword 
[mysqld] 
... 
default-time-zone = '+0:00' 

Тогда:

sudo service mysql start 
mysql -u root 
mysql> SHOW GRANTS FOR [email protected] 
+--------------------------------------------------------------------------------------------------+ 
| Grants for [email protected]ost | 
+--------------------------------------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '[here is the Securepassword]' | 
+-------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

mysql> 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; 

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

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

+2

Проверьте наличие 'bind-address = localhost' в' ini'. – user2339071

ответ

2

Это было абсолютно правильно, что вы сделали, но я предполагаю, что это не работает для одной маленькой причине.

Вы должны использовать identified by password, когда вы собираетесь предоставлять привилегии, как это:

mysql> GRANT ALL PRIVILEGES ONE `*`.`*` TO 'root'@'localhost' IDENTIFIED BY PASSWORD 
'*A4B6157319038724E3560894F7F932C8886EBFCF' WITH GRANT OPTION; 
+0

Я не думаю, что вы правы, 'IDENTIFY BY PASSWORD' ожидает пароль с открытым текстом, а не' PASSWORD ('') 'значение – nrathaus

0

Если вы получите сообщение об ошибке, как это:

Warning: mysql_connect(): Access denied for user: .... 

, то проблема заключается в том приложении не может access the database. Это может иметь несколько причин:

Прежде всего, убедитесь, что настройки баз данных в вашем db-config.php (файл подключения для вашего приложения) являются правильными, а именно name и password вашего пользователем MySQL, имя вашего database, и имя вашего сервера MySQL.

Если вы используете свой собственный сервер, возможно, вам нужно предоставить права доступа к MySQL. Войдите в MySQL в качестве пользователя root root и выполните следующие команды:

GRANT ALL PRIVILEGES ON database_name TO [email protected] IDENTIFIED BY 'password'; 
FLUSH PRIVILEGES; 
+0

. Обратите внимание, что мы ожидаем ответов на вопросы * конкретных * в вопросе. Не забудьте обратить особое внимание на язык, платформу, библиотеки и т. Д., И обязательно искать решения для конкретной проблемы. Например; этот вопрос ** вообще не относится к PHP. –

Смежные вопросы