我在运行 sudo 时不断收到以下错误
**mysql_secure_installation**
...失败了!错误:SET PASSWORD 对于用户“root”@“localhost”没有意义,因为使用的身份验证方法不存储 MySQL 服务器中的身份验证数据。请考虑使用 ALTER 如果您想更改身份验证参数,请改为 USER。
任何帮助将不胜感激。
更新:
通过运行 sudo mysql 解决了这个问题,它让我以 root 身份登录而无需密码,然后我运行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
在此之后,我能够再次运行
mysql_secure_installation
,这次我必须选择使用现有密码(我使用上述 SQL 命令设置的密码)。
但是现在我无法再没有密码登录,运行
sudo mysql
现在拒绝 root 用户访问:
错误 1045 (28000):用户“root”@“localhost”的访问被拒绝(使用 密码:无)
如何再次使用
sudo mysql
重新登录?
我建议首先使用 select user,host from mysql.user ;语句检查一下你的用户权限,然后进行相应的设置。从上面的错误来看,主要是权限的问题。
事情是这样的。 第一,如果不输入密码,您现在无法登录MySQL,因为您已经设置了密码。 所以现在要无需密码登录,您可以将密码保存在某处,您可以做两件事
1: 与个人资料连接
您必须做的第一件事是创建无密码身份验证的配置文件。这是在 mysql_config_editor 工具的帮助下完成的。假设我们要为 MySQL 服务器创建一个配置文件,名为 mysql1,在 IP 地址 192.168.1.158 上运行,管理员用户为 dbadmin。为此,您需要发出命令:
mysql_config_editor set –login-path=mysql1 –host=<Server-ip> –user=dbadmin –password
现在让我们使用配置文件连接到 mysql1 服务器。从终端窗口发出命令:
mysql –login-path=mysql1
您将立即进入 MySQL 服务器上的 MySQL 提示符。就是这样。
2:在根目录下创建一个文件如下
cd ~
vi .my.cnf
##save below
[client]
user=root
password = asdfghjkl
然后只需输入 MySQL 即可连接到服务器。
根据之前的解决方案 MySQL 5.7.20 无法设置root密码
你应该尝试一下
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypasswordhere';