今天学习docker的时候安装mysql之后 挂载了数据卷
然后自己连接mysql 突然发现连接不上

The specified database user/password combination is rejected: [28000][1045] Acce

然后我就想到肯定是我密码设置错了 但是我又记不起密码

所以只好修改下密码

1.修改 MySQL 配置文件

首先我们需要打开 MySQL 的配置文件,如果是 Windows 系统的话,MySQL 的配置文件是 my.ini,它在 MySQL 的默认安装目录下;如果是 MacOS 系统的话,配置文件名是 my.cnf,它的路径是 /etc/my.cnf。
而我用的是centos7 docker映射的文件
以 linux 为例,我们需要在配置文件的 [mysqld] 后面添加“skip-grant-tables”,意思是设置跳过权限验证,如下图所示:
在这里插入图片描述
加上

skip-grant-tables

在这里插入图片描述
提示:如果没有配置文件可以自行创建一个my.cnf

2.重启 MySQL

docker restart mysql

我直接用docker重启实例就行

如果是 Windows 系统,我们可以先关闭再启动 MySQL,执行命令如下:

net stop mysql net start mysql

如果是 Linux 系统,可以直接使用命令重启:

service mysql restart

3.设置新密码

重启服务之后我们就可以通过命令行工具来设置 MySQL 的新密码了,首先我们输入“mysql -u root -p”命令来连接 MySQL 服务器,当出现输入密码框时直接敲回车就可以登录了。

然后 选择mysql数据库

use mysql

接下来我们再使用以下命令来设置新的密码:

update user set password=password('新密码') where user='root'; flush privileges; quit

这是更新表中的密码

当然在mysql5.7中 运行此命令会提示没有password字段

5.7无password字段解决办法

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐