Trước tiên, hãy xác định người dùng mà bạn đăng nhập là:
select user();
select current_user();
Kết quả cho lệnh đầu tiên là những gì bạn đã cố gắng đăng nhập, lệnh thứ hai là những gì bạn thực sự đã kết nối. Xác nhận rằng bạn đã đăng nhập bằng [email protected]
trong mysql.
Grant_priv
tới [email protected]
. Đây là cách bạn có thể kiểm tra.
mysql> SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
+-----------+------------------+-------------------------------------------+------------+------------+
| host | user | password | Grant_priv | Super_priv |
+-----------+------------------+-------------------------------------------+------------+------------+
| localhost | root | ***************************************** | N | Y |
| localhost | debian-sys-maint | ***************************************** | Y | Y |
| localhost | staging | ***************************************** | N | N |
+-----------+------------------+-------------------------------------------+------------+------------+
Bạn có thể thấy rằng Grant_priv được đặt thành N cho [email protected] Điều này cần phải là Y. Dưới đây là cách khắc phục điều này:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
Tôi đã đăng nhập lại, nó ổn.