docker 阅读 2481
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=c29798df371772130f36dc541f6e7c75&t=6aedf980

二、拉取镜像

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

docker pull mysql:5.7

https://file.lulublog.cn/images/3/2023/05/yOvRZjvvujv0BVV1KyYoVIyvTS3YK1.jpg?sign=24d92b9ca9f9d993c15fd95d4ab83001&t=6aedf980

三、查看镜像

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

docker images mysql

https://file.lulublog.cn/images/3/2023/05/tu4OGHLskgcHni1GIIIihQi6liiGgI.jpg?sign=1a729c68d445a0ce6c0899172daf8d44&t=6aedf980

四、启动镜像

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=16c67d4f895efc8d5057ecf5e89983fd&t=6aedf980

docker ps

https://file.lulublog.cn/images/3/2023/05/wcQasUUnhiSacc34UbBuSn24y6wWCW.jpg?sign=2062636965813e457789ffe6322cb664&t=6aedf980

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

https://file.lulublog.cn/images/3/2023/05/ENFnLnUJyrFRC4C145ScJAco15R5NO.jpg?sign=361be37546da63501fdcf9ec52ae4381&t=6aedf980

五、创建数据

建库建表插入数据

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=5c75bbd55d2bca5eccf349f79bc7a97f&t=6aedf980

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

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

插入中文数据

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

https://file.lulublog.cn/images/3/2023/05/LHX33ibIb6VVJoiTvVBxIIi6i7XIT3.jpg?sign=289e18504677e6c0e5bde83846632533&t=6aedf980

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

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

SHOW VARIABLES LIKE 'character%';

https://file.lulublog.cn/images/3/2023/05/Xj6h8F8nR4K4H4p8Rj6uMPRks8RnsL.jpg?sign=0a69d0d2368c61906c0f84758e14e45f&t=6aedf980

六、实战版

先把之前的 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=f39e5bef3c7009978575302e5b2a3f27&t=6aedf980

重启 mysql

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

https://file.lulublog.cn/images/3/2023/05/B66wbs3e9wBQ6J6JoE9oCabcSrjqZg.jpg?sign=5643e84186b5a24a5f1831d2a22955eb&t=6aedf980

查看字符集

SHOW VARIABLES LIKE 'character%';

https://file.lulublog.cn/images/3/2023/05/P63kk44F769v847FazwAZllrll9fff.jpg?sign=729e9e11d3f215e3f2031d25c6ae7096&t=6aedf980

创建数据

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

https://file.lulublog.cn/images/3/2023/05/Fs1fjj12JmTZJk8vs8yB8iL8pap188.jpg?sign=4e52a3c02e7e7f18ec761afbc1645aef&t=6aedf980

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

插入中文数据

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

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

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

docker文章
带到手机上看