我在 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 释放该缓存内存。