编辑

编辑

我在 Hortonworks HDP 上安装了 MySQL 和 MySQL 社区服务器。我开始服务并尝试更改密码

/usr/bin/mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Please set the password for root here.

New password: 

Re-enter new password: 

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
 ... Failed! Error: The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

并且这个过程一次又一次地重复。

skip=grant-tables从我的/etc/my.conf文件中删除了

我尝试了巴特的建议,它首先起作用,但后来我遇到了同样的问题。

I logged as a root.
mysql> create database registry;
Query OK, 1 row affected (0.05 sec)

mysql> CREATE USER 'registry'@'%' IDENTIFIED BY 'R12$%34qw';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

如何解决这个问题?

答案1

只需正常停止并重新启动 MySQL 即可。

编辑

否则:

确保刷新权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

来自文档:

同花顺特权

从 mysql 数据库中的授权表重新加载权限。

作为 GRANT 和 CREATE USER 语句的结果,服务器将信息缓存在内存中。该内存不会被相应的 REVOKE 和 DROP USER 语句释放,因此对于执行许多导致缓存的语句实例的服务器,内存使用量将会增加。可以使用 FLUSH PRIVILEGES 释放该缓存内存。

相关内容