试过
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
得到
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'root' WITH GRANT OPTION' at line 1.
注意:在以前的版本中尝试时也是如此。
也试过了
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
得到
ERROR 1410 (42000): You are not allowed to create a user with GRANT
MySQL (8.0.11.0) 用户名/密码是 root/root。
最佳答案
从 MySQL 8 开始,您不再可以(隐式)使用 GRANT
命令创建用户。使用CREATE USER相反,后跟 GRANT声明:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
注意关于WITH GRANT OPTION
的安全风险,参见:
关于mysql - 如何在 MySQL 8.0 中授予 root 用户所有权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177216/