Docker中修改MySQL密码
作者:
来源:网络
点击数: 次
发布时间:2021年09月12日
问题描述
MySQL是安装在Docker中的,项目中使用的都是非root账号登录的MySQL且没有mysql库的权限,时间一长就把root的密码给忘记了.
修改密码步骤
1. 通过docker exec命令进入容器内
# mysql-5.7 为数据库容器名 docker exec -it mysql-5.7 /bin/sh
2. 安装编辑器
不知道是否我安装的MySQL镜像的问题,容器中没有vim也没有vi,所以自己安装一个,如果有可以跳过
apt-get update apt-get install vim
3. 修改配置跳过密码验证
vim /etc/mysql/conf.d/docker.cnf # 在最后添加skip-grant-tables [mysqld] skip-host-cache skip-name-resolve skip-grant-tables
也可以修改my.cnf,这个文件所有MySQL通用,docker.cnf只有docker中存在
vim /etc/mysql/my.cnf # 在最后添加skip-grant-tables ... skip-grant-tables
修改完后保存并退出容器
4. 重启MySQL
5. 再次进入容器,直接登录MySQL
docker exec -it mysql-5.7 /bin/sh # 在容器中使用mysql可以直接登录 mysql
5. 修改root账号密码
# MySQL 5.7.6+版本以上 use mysql; UPDATE user SET authentication_string = PASSWORD('g123455.') WHERE user = 'root'; flush privileges; # MySQL 5.7.6版本以下 use mysql; UPDATE user SET password= PASSWORD('g123455.') WHERE user = 'root'; flush privileges;
6. 还原配置
按第3步,删除skip-grant-tables,还原配置.退出容器,重启MySQL就可以