Docker安装mysql

docker hub上面查找mysql镜像

docker search mysql

Docker安装mysql_第1张图片

从docker hub上(阿里云加速器)拉取mysql镜像到本地标签为5.7

docker pull mysql:5.7

Docker安装mysql_第2张图片

查看镜像

Docker安装mysql_第3张图片

使用mysql5.7镜像创建容器(也叫运行镜像)

密码设置为root

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

Docker安装mysql_第4张图片

建库建表插入数据

Docker安装mysql_第5张图片

创建库db01

Docker安装mysql_第6张图片

创建表,插入数据

Docker安装mysql_第7张图片

查看数据

Docker安装mysql_第8张图片

外部Win连接运行在dokcer上的mysql容器实例服务

Docker安装mysql_第9张图片

找到db01库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FtnFxX6r-1689511289250)(F:\note\image\image-20230716203530791.png)]

插入中文数据乱码问题

INSERT INTO user VALUES(2,“李四”);

Docker安装mysql_第10张图片

docker上默认字符集编码隐患,docker里面的mysql容器实例查看,内容如下:

SHOW VARIABLES LIKE ‘character%’

Docker安装mysql_第11张图片

由于navicat工具对客户端相关编码进行的改写,在命令行中查询,默认的编码都是latin1

Docker安装mysql_第12张图片

解决mysql中文乱码问题

1 解决中文乱码问题

2 通过容器卷同步mysql

新建mysql容器实例

docker run -d -p 3306:3306 --privileged=true -v /dongguo/mysql/log:/var/log/mysql -v /dongguo/mysql/data:/var/lib/mysql -v /dongguo/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7

将宿主机目录挂载到容器里,挂载了三个容器数据卷

-v /dongguo/mysql/log:/var/log/mysql

-v /dongguo/mysql/data:/var/lib/mysql

-v /dongguo/mysql/conf:/etc/mysql/conf.d

image-20230716203803736

/dongguo/mysql/conf下新建my.cnf解决中文乱码问题

Docker安装mysql_第13张图片

[client]

default_character_set=utf8

[mysqld]

collation_server = utf8_general_ci

character_set_server = utf8

Docker安装mysql_第14张图片

重新启动mysql容器实例再重新进入并查看字符编码

Docker安装mysql_第15张图片

字符编码已经设置为utf-8

Docker安装mysql_第16张图片

再新建库新建表再插入中文测试

创建库

Docker安装mysql_第17张图片

创建表

image-20230716203924486

插入带中文数据

Docker安装mysql_第18张图片

插入成功

Docker安装mysql_第19张图片

docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据

假如将当前容器实例删除,再重新来一次,之前建的db01实例还存在吗

删除docker容器

Docker安装mysql_第20张图片

新启动一个docker容器

docker run -d -p 3306:3306 --privileged=true -v /dongguo/mysql/log:/var/log/mysql -v /dongguo/mysql/data:/var/lib/mysql -v /dongguo/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7

Docker安装mysql_第21张图片

Docker安装mysql_第22张图片

挂载容器数据卷后,宿主机和容器数据进行了同步。如果不小心将容器给删除,运行一个新的容器,主机的数据会同步给容器,之前的数据还是存在的。

你可能感兴趣的:(docker,docker,mysql,容器)