Docker 中如何安装配置MySQL

本文详细介绍了在Docker环境下安装和配置MySQL的步骤,包括安装Docker、拉取MySQL镜像、创建数据目录、启动容器、设置权限、修改编码问题,以及远程连接的配置。此外,还提供了日志查看、进程管理和容器操作的相关命令。
摘要由CSDN通过智能技术生成

 

 

Docker 中如何安装配置MySQL

1、安装docker

1)、移除旧版本的docker:

$ sudo yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-selinux \                  docker-engine-selinux \                  docker-engin

2)、安装docker

  •  
yum install docker

 

查看是否安装成功

  •  
docker version

 

启动查看docker安装运行状态:

  •  
  •  
  •  
systemctl start docker.service # 开启dockersystemctl enable docker.service # 开机自启动systemtcl status docker.service # 查看docker的运行状态

图片

2、安装mysql镜像

1)查询mysql的镜像

docker search mysql

图片
2) 安装mysql

docker pull mysql # 安装最新版的mysql

 

图片
3)查看镜像:

docker images

 

图片
4) 创建必要的文件夹

cd /opt # 我的软件都安装在/opt目录下。mkdir mysql_dockercd mysql_docker/echo $PWD # 当前位置的绝对路径

3、启动容器

1)启动mysql容器:

docker run --name mysqlserver --privileged=true -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:latest
解释说明::::
# --privileged=true:在docker run中加入 --privileged=true 给容器加上特定权限# --name mysqlserver :指定容器的名字为mysqlserver # -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。# -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。# -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

图片

如果发现容器没有正常启动,则记得加上–privileged=true 给容器加上特定权限

2)查看mysql进程:

 

docker ps

图片

3) 测试mysql登录:

docker exec -it mysqlserver /bin/bash # 也可以把容器名"mysqlserver"改为容器idmysql -uroot -p

 

图片

  • sql;select host,user from user;ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # 修改密码flush privileges; # 刷新权限。

 

 

4)测试远程连接
开放3307端口。

firewall-cmd --zone=public --add-port=3307/tcp --permanent # 开放3307端口firewall-cmd --reload # 配置立即生效firewall-cmd --zone=public --list-ports

远程连接。
图片

4、命令总结

1)、日志查看:

 

docker logs -f --tail 10 a4dac74d48f7 # 容器id可以通过docker ps查看。

 

2)、查看进程:

 

docker ps -a # docker ps :查看运行中的进程;-a:查看所有进程,包括不运行的。

3)、关闭docker中的mysql容器

 

docker stop mysqlserver # mysqlserver可以替换为容器id

4)、重启docker中的mysql容器

 

docker restart 容器id

5)、重启docker

 

systemctl restart docker

6)、关闭docker

 

systemctl stop docker

5、编码问题。

先看个问题,如果你在命令行查询语句中中文显示是这样的,说明你的docker的mysql容器的编码不是utf8,需要修改,下面给出修改的步骤。

mysql> SELECT DISTINCT department FROM student_info;+-----------------+| department      |+-----------------+| ???        || ???      || ???        || ???        |+-----------------+4 rows in set (0.01 sec)

1)切换进入容器

docker exec -it mysqlserver /bin/bash # 也可以把容器名"mysqlserver"改为容器idmysql -uroot -p # 输入密码

2)安装vim

因为可能你的容器没有vim编辑器,无法完成对my.cnf文件的修改。​​​​​​​

apt-get updateapt-get install vim -y

3)修改my.cnf文件。​​​​​​​

cd /etc/mysqlvim my.cnf

my.cnf的内容为:​​​​​​​

[client]default-character-set=utf8
[mysqld]pid-file        = /var/run/mysqld/mysqld.pidcharacter-set-server=utf8socket          = /var/run/mysqld/mysqld.sockdatadir         = /var/lib/mysqlsecure-file-priv= NULLinit_connect='SET NAMES utf8'
[mysql]no-auto-rehashdefault-character-set=utf8

替换掉其中utf8字样的内容。

4)重启docker。

 

docker restart 1c7b4791a069 # 容器id,通过docker ps查看。

5)查看是否修改成功​​​​​​​

docker exec -it mysqlserver /bin/bash # 也可以把容器名"mysqlserver"改为容器idmysql -uroot -p # 输入密码show variables like 'char%'; # 查看编码
​​​​​​
mysql> show variables like 'char%';+--------------------------+--------------------------------+| Variable_name            | Value                          |+--------------------------+--------------------------------+| character_set_client     | utf8                           || character_set_connection | utf8                           || character_set_database   | utf8                           || character_set_filesystem | binary                         || character_set_results    | utf8                           || character_set_server     | utf8                           || character_set_system     | utf8                           || character_sets_dir       | /usr/share/mysql-8.0/charsets/ |+--------------------------+--------------------------------+8 rows in set (0.00 sec)

成功。

mysql> SELECT DISTINCT department FROM student_info;+-----------------+| department      |+-----------------+| 软件学院        || 计算机学院      || 材料学院        || 生物学院        |+-----------------+4 rows in set (0.01 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值