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 example@sqldat.com trong mysql.
Grant_priv tới example@sqldat.com . Đâ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 example@sqldat.com Đ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.