用户'root'@'localhost'拒绝MYSQL访问

use*_*684 11 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
Run Code Online (Sandbox Code Playgroud)

更改root密码:

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

修改/etc/mysql/my.cnf:

[client]
user=root
password=SecurePassword
[mysqld]
...
default-time-zone = '+0:00'
Run Code Online (Sandbox Code Playgroud)

然后:

sudo service mysql start
mysql -u root
mysql> SHOW GRANTS FOR root@localhost
+--------------------------------------------------------------------------------------------------+
 | Grants for root@localhost | 
+--------------------------------------------------------------------------------------------------+
 | 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;
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

用户'root'@'localhost'拒绝访问(使用密码:YES)

Abh*_*Dey 2

你所做的绝对正确,但我想由于一个小原因它不起作用。

identified by password当您要授予这样的权限时,您应该使用:

mysql> GRANT ALL PRIVILEGES ONE `*`.`*` TO 'root'@'localhost' IDENTIFIED BY PASSWORD
'*A4B6157319038724E3560894F7F932C8886EBFCF' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)