⏳环境:window10、CentOs7、VMware15.5

专栏:环境篇(linux系统上hive连接win10上的mysql)

选自:大数据开发

Mysql 8.0开放授权出错

  • 1.报错:ERROR 1064 (42000)
    • 1.1 问题描述:
    • 1.2 说明
    • 1.3 解决办法
  • 2.ERROR 1396 (HY000): Operation CREATE USER failed for ‘root’@’%’
    • 2.1 问题说明
    • 2.2 说明
    • 2.3 解决方法

8.0开放授权出错)

1.报错:ERROR 1064 (42000)

1.1 问题描述:

今天在执行授权语句的时候,报错:ERROR 1064 (42000)

  • 执行语句为:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'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 ‘Tibco123’WITH GRANT OPTION’ at line 1、

1.2 说明

意识到版本问题后就百度mysql-8授权语句的语法,终于解决问题。在Mysql 8版本中,不能使用上述授权语句;

1.3 解决办法

对于授权语句来设置用户权限,必须分两步来实现用户权限【1、先创建用户;2、对该用户分配权限;3、最后,刷新权限】

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'password';mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;mysql> FLUSH PRIVILEGES;

2.ERROR 1396 (HY000): Operation CREATE USER failed for ‘root’@‘%’

2.1 问题说明

在执行下面语句可能会报错:

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'password';

2.2 说明

这是因为,之前可能创建过该用户,再次创建会重复;

2.3 解决方法

mysql> drop user 'root'@'%';Query OK, 0 rows affected (0.01 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

此时,重新创建就可以成功了。

参考资料:
1. ERROR 1064 (42000)
2. ERROR 1396 (HY000)