我们先来看看这几个命令
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了!
喜欢的点个赞,收藏一下再走吧~~