Windows下的Docker配置MySQL修改默认密码

我们先来看看这几个命令

docker pull mysql:5.6
docker run -d -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=123456 --name mysql56 mysql:5.6
参数说明 
-d 让容器在后台运行 
-p 3306:3306 将容器的 3306 端口映射到主机的 3306 端口
-e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置 
–name 容器的名字,随便取,但是必须唯一

是不是很简单就配置完了啊?而且上面也配置了密码对不对?

其实并没这么简单,等你用这个命令的时候

docker exec -ti mysql56 /bin/bash
参数说明 
-t 在容器里生产一个伪终端 
-i 对容器内的标准输入 (STDIN) 进行交互

进入终端然后使用mysql命令登录发现登不进去,那么问题就来了,肯定是默认密码修改无效咯!

如何解决默认密码无效

打开配置文件的命令

(伪终端刚开始是没有编辑器的,需要自己装一哈:apt-get install vim || apt-get update)

nano /etc/mysql/my.cnf

(喜欢vim的小伙伴也可以用vi命令)
在最后一行添加如下代码( //跳过mysql的密码验证)
 

skip-grant-tables

然后重新启动容器

docker restart mysql56

再登用mysql命令登录

mysql -u root -p

(怕小白不记的命令)

然后使用UPDATE语句

update mysql.user set passwrd=“新密码” where User = “username”;

再退出去,把之前绕过密码登录的那一行删除掉,继续重启容器,然后就OK了!

如果以上方法都行不通,那么建议直接用这个命令吧(删除之前的应用,重新配置)

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v $PWD/conf:/etc/mysql/conf.d -v $PWD/data:/var/lib/mysql -v $PWD/logs:/logs --name mysql56 mysql:5.6

如果有报错的话多半是没创建文件夹,创建对应文件夹就OK了!

喜欢的点个赞,收藏一下再走吧~~

你可能感兴趣的:(系统配置,MySQL,docker)