强制更改Docker容器MYSQL数据库密码

使用docker容器时,通过镜像安装mysql数据库,但是容器内的mysql密码没有自定义设置,需要重新设置密码

解决方案

1.更改配置文件,增加”忘记密码启动”模式
2.重新设置root密码
3.删除”忘记密码启动”模式
4.重启容器镜像

具体操作

  1. 进入容器
#查看docker容器ID
[root@web01 ~]# docker ps -a
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                NAMES
ec35e80c33f7        seafileltd/seafile:latest   "/sbin/my_init -- ..."   3 days ago          Up 14 hours         0.0.0.0:80->80/tcp   seafile
 
#进入容器
[root@web01 ~]# docker exec -it ec35e80c33f7 bash
root@ec35e80c33f7:/opt/seafile# 
  1. 编辑mysql配置文件,增加”忘记密码启动”模式:skip-grant-tables
#必须是docker.cnf,如果没有就直接编辑个
root@ec35e80c33f7:/opt/seafile# vi /etc/mysql/conf.d/docker.cnf
root@ec35e80c33f7:/opt/seafile# cat /etc/mysql/conf.d/docker.cnf
[mysqld]
skip-host-cache
skip-name-resolve
skip-grant-tables
  1. 退出容器,重启docker容器
[root@web01 ~]# docker restart ec35e80c33f7
ec35e80c33f7
  1. 进入容器,输入mysql命令,免密登录MySQL
[root@web01 ~]# docker exec -it ec35e80c33f7 bash
root@ec35e80c33f7:/opt/seafile# mysql
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 5
Server version: 10.1.34-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
 
MariaDB [(none)]> 
  1. 设置root用户密码,刷新权限,退出mysql
#进入mysql数据库
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
#更改root密码
Database changed
MariaDB [mysql]> UPDATE user SET Password = password ( '123456' ) WHERE User = 'root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 4  Changed: 0  Warnings: 0
 
#刷新权限
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
#退出mysql
MariaDB [mysql]> quit
Bye
root@ec35e80c33f7:/opt/seafile# 
  1. 重新编辑mysql配置文件,删除”忘记密码启动”模式,退出重启容器
root@ec35e80c33f7:/opt/seafile# vi /etc/mysql/conf.d/docker.cnf
root@ec35e80c33f7:/opt/seafile# exit
[root@web01 ~]# docker restart ec35e80c33f7
ec35e80c33f7
  1. 进入容器,使用新密码登录MySQL
[root@web01 ~]# docker exec -it ec35e80c33f7 bash
root@ec35e80c33f7:/opt/seafile# mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 6
Server version: 10.1.34-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
 
MariaDB [(none)]> 

人已赞赏
服务器与web应用

MYSQL主从复制出现Could not initialize master info structure错误

2020-11-18 19:13:39

网络储存nas

蜗牛星际 - c款介绍

2020-10-8 0:00:00

⚠️
恩月阁文章由星九进行编写或整理,部分内容来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。
若无意中侵害到您的权益,请发送邮件至 xingjiu@nuue.cn 或点击右侧 私信:星九 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索