docker 阅读 2448
docker 第7.2章 常规安装-安装mysql

docker 第7.2章 常规安装-安装mysql

2023-05-04 • lulubin

一、搜索镜像

docker hub 上面查找 mysql 镜像

docker search mysql

https://file.lulublog.cn/images/3/2023/05/ixTJdzECS3D0euJ30DtTMBBS3sbcD4.jpg?sign=f70de6a5a0aac9cec9596a1f659b74e2&t=6ad39b80

二、拉取镜像

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

docker pull mysql:5.7

https://file.lulublog.cn/images/3/2023/05/yOvRZjvvujv0BVV1KyYoVIyvTS3YK1.jpg?sign=88463acef083b277b5e1e9e70ce7cafb&t=6ad39b80

三、查看镜像

docker images 查看是否有拉取到的 mysql

docker images mysql

https://file.lulublog.cn/images/3/2023/05/tu4OGHLskgcHni1GIIIihQi6liiGgI.jpg?sign=8cdd24c1598b527b7ec3c1c6d9e5d7fd&t=6ad39b80

四、启动镜像

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

https://file.lulublog.cn/images/3/2023/05/TZdgM2xBb6Rl6mfDJMGJM9Bg5XgxPM.jpg?sign=6bc2125da481b0aaff1872f8c4ebdb90&t=6ad39b80

docker ps

https://file.lulublog.cn/images/3/2023/05/wcQasUUnhiSacc34UbBuSn24y6wWCW.jpg?sign=d4bba3986f8b5f102df00cad09db537b&t=6ad39b80

docker exec -it 容器ID /bin/bash
mysql -uroot -p

https://file.lulublog.cn/images/3/2023/05/ENFnLnUJyrFRC4C145ScJAco15R5NO.jpg?sign=53c5ceb474a1ed0eb4a7d52f20fa5891&t=6ad39b80

五、创建数据

建库建表插入数据

create database db01;

切换数据库

use db01;

创建数据库表

create table test(id int,name varchar(20));

插入数据

insert into test values(1,'lulubin');

查询数据

select * from test;

https://file.lulublog.cn/images/3/2023/05/QK0glG08KGEYJ0gLuwY8u47qAzvevC.jpg?sign=eea42ce7aa3f4e505d9cd04cc582ce5b&t=6ad39b80

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

演示使用的外部工具是:https://lulublog.cn/p/shv0O2

插入中文数据

insert into test values(2,'鲁鲁槟');

https://file.lulublog.cn/images/3/2023/05/LHX33ibIb6VVJoiTvVBxIIi6i7XIT3.jpg?sign=71a303b86a7d75beb8e50cea93c4177b&t=6ad39b80

为什么报错?docker 上默认字符集编码隐患

docker里面的mysql容器实例查看,内容如下:

SHOW VARIABLES LIKE 'character%';

https://file.lulublog.cn/images/3/2023/05/Xj6h8F8nR4K4H4p8Rj6uMPRks8RnsL.jpg?sign=f1f50dc6a11694c288f3b81dce9253eb&t=6ad39b80

六、实战版

先把之前的 mysql 容器删除

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

新建 my.cnf

cd /lulubin/mysql/conf
vim my.cnf
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
cat my.cnf

https://file.lulublog.cn/images/3/2023/05/qhs1F8sh8485YrZpQyxJhSR4fps1hJ.jpg?sign=f3d0abd85ca5c1c43315db77fb5414be&t=6ad39b80

重启 mysql

docker restart mysql
docker exec -it mysql bash
mysql -uroot -p

https://file.lulublog.cn/images/3/2023/05/B66wbs3e9wBQ6J6JoE9oCabcSrjqZg.jpg?sign=da03fd5db466ad0e4a5adda1046c3a47&t=6ad39b80

查看字符集

SHOW VARIABLES LIKE 'character%';

https://file.lulublog.cn/images/3/2023/05/P63kk44F769v847FazwAZllrll9fff.jpg?sign=74f4396e7cbe4b52d1ea702be36d1c21&t=6ad39b80

创建数据

create database db01;
use db01;
create table test(id int,name varchar(20));

https://file.lulublog.cn/images/3/2023/05/Fs1fjj12JmTZJk8vs8yB8iL8pap188.jpg?sign=1cb6fea1480403aeb7e7244edc779d8e&t=6ad39b80

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

插入中文数据

insert into test values(2,'鲁鲁槟');

https://file.lulublog.cn/images/3/2023/05/p4BEwRFX17w1yz22c7T37tfx1yrRtS.jpg?sign=e3051eea35283c59a7b0adfd045b43a2&t=6ad39b80

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

docker文章
带到手机上看