第一步:拉取MySQL镜像
1、拉取MySQL镜像(这里一般不会出现什么问题)
[root@localhost ~]# docker pull mysql
2、查看本地镜像,确认是否拉取成功
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 3218b38490ce 2 years ago 516MB
第二步:根据镜像生成容器
1、通过镜像生成容器
[root@localhost ~]# docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name my_mysql mysql
//注释
[ -d ]: 后台运行;
[ -p ]: 配置端口映射(容器的3306映射到虚拟机的3307端口)
[ -e ]: 添加配置信息(密码为123456)
[ --name ]: 容器名字
mysql: 镜像名字
2、查看目录运行中的容器列表
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dcc510896307 mysql "docker-entrypoint.s…" 28 seconds ago Up 27 seconds 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp my_mysql
其中第一条就是我们刚创建的MySQL镜像了
3、进入容器内简单测试
## my_mysql是上面NAMES
[root@localhost ~]# docker exec -it my_mysql bash
root@dcc510896307:/#
##此时发现,命令行的前缀已经变成了dcc510896307,就是我们新建的my_mysql的容器ID。此时就相当于进入了容器内部的命令窗口。
4、此时输入
root@dcc510896307:/# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
到此为止,容器就已经创建完毕。
5、删除数据库
[root@localhost ~]# docker rm -f dcc510896307
第三步:为MySQL容器配置远程连接访问权限
1、此时测试远程连接(以Navicat 为例,SQLyog管理软件等同理)
第四步:解决中文乱码问题(可直接从第四步开始)
1.删除原先MySQL容器
docker ps -a #查看进程
docker rm -f mysql #删除进程,mysql是自定义的容器名,可以是其他也可以是ID
2.创建新的容器
docker run -d -p 3307:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql
- 找到配置文件夹:conf
[root@localhost ~]# cd /zzyyuse/mysql/conf
[root@localhost conf]# ls -l
总用量 0
4.创建配置文件:cnf , 修改字符集
[root@localhost conf]# vim my.cnf
#----------------------------------------
#将下面代码粘贴到客户端
[client]
default_character_set=utf8
[mysql]
default_character_set=utf8
[mysqld]
character_set_server=utf8
#退出编辑:ESC
#保存退出当前界面::wq
5.重启MySQL容器
#命令:docker restart mysql
#命令:docker exec -it mysql /bin/bash