mysql:Using a password on the command line interface can be insecure.(using password:YES)

在Linux终端中出现无法启动Mysql的情况,在Linux终端中输入 mysql -uroot -p密码 的时候出现了下面这个错误:

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)


打开mysql的配置文件,文件中有一个[mysqld]字段,在这个[mysqld]字段下添加一句 skip-grant-tables属性。加 skip-grant-tables的作用是免密登录。
免密登陆进去后再给Mysql进行重置密码,这样问题就解决了。

一、找到配置文件

在不同的Linux系统下,配置文件my.cnf 放在不同的位置。这里以CentOS7 Server做示例,其他系统请根据情况自行找到my.cnf的路径。一般只会存放在/etc/my.cnf或者/etc/mysql/my.cnf下。
CentOS7 Server其Mysql放在了/etc/my.cnf中:在这里插入图片描述

二、添加免密配置属性

文件中有一个[mysqld]字段,在这个[mysqld]字段下添加一句skip-grant-tables属性。

由于这个是linux系统,所以Linux下修改文本操作不同我们window。

(1)用vim打开配置文件,我的配置文件路径是/etc/my.cnf,所以在远程控制终端(这里推荐用xShell连接远程服务器)中输入:

vim /etc/my.cnf

在这里插入图片描述
(2)切换到编辑模式进行编辑
我们需要通过键盘里的上下键来移动游标。

文件中有一个[mysqld]字段,在这个[mysqld]字段下添加一句skip-grant-tables属性。

这时按键盘里的insert键,下方会出现 -- INSERT --字样,即切换到编辑模式,在编辑模式下就可以对配置文本进行编辑了,现在加入skip-grant-tables语句:
在这里插入图片描述
(3)切换回一般模式
编辑完后就切换回一般模式,也就是一开始不可编辑的模式。按键盘的Esc键可进入一般模式。在一般模式下输入 : wq(英文下的冒号:)可以退出编辑模式,即 :wq 可以保存并退出编辑模式,如下图:
在这里插入图片描述

三、重启mysql,重置密码

1、重启Mysql
service mysqld restart

2、免密连接Mysql
mysql -uroot -p
(因为已经进行了免密登录操作,此处不用输入密码)

3、重置密码
mysql> update mysql.user set authentication_string=password('你要重置的密码') where user='root' ;(最后不要忘记加";")

如果此处报错,是因为你的mysql版本比较新,这种重置密码的语句已经过时了,你可以用以下语句重置密码:
mysql> update mysql.user set password=password('你要重置的密码') where user='root' and host='localhost';
总有一个好用

4、刷新退出
mysql> flush privileges;
mysql> exit

此时应该可以正常登陆了。

发布了88 篇原创文章 · 获赞 141 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37717494/article/details/105369452
今日推荐