docker 阅读 2445
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=43ec41b550af5c6be61a05e99926a9ff&t=6ad24a00

二、拉取镜像

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

docker pull mysql:5.7

https://file.lulublog.cn/images/3/2023/05/yOvRZjvvujv0BVV1KyYoVIyvTS3YK1.jpg?sign=080700b0553b851c9ec1e6510c7c6566&t=6ad24a00

三、查看镜像

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

docker images mysql

https://file.lulublog.cn/images/3/2023/05/tu4OGHLskgcHni1GIIIihQi6liiGgI.jpg?sign=fbb571bda259968e6fbe3272c5c3b227&t=6ad24a00

四、启动镜像

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=224ff48f7709ac62cb0205846afb7658&t=6ad24a00

docker ps

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

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

https://file.lulublog.cn/images/3/2023/05/ENFnLnUJyrFRC4C145ScJAco15R5NO.jpg?sign=4bb3944ecec8b7d05fd9a4e81f5d2284&t=6ad24a00

五、创建数据

建库建表插入数据

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=598069a136300989f42da80f2dab26cf&t=6ad24a00

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

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

插入中文数据

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

https://file.lulublog.cn/images/3/2023/05/LHX33ibIb6VVJoiTvVBxIIi6i7XIT3.jpg?sign=09453d945e8087a8fe4f1fc04b23de38&t=6ad24a00

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

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

SHOW VARIABLES LIKE 'character%';

https://file.lulublog.cn/images/3/2023/05/Xj6h8F8nR4K4H4p8Rj6uMPRks8RnsL.jpg?sign=1239c2df7a782868eaefd260ec7c78cd&t=6ad24a00

六、实战版

先把之前的 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=9d42320d35695276ba5df99bc22c390b&t=6ad24a00

重启 mysql

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

https://file.lulublog.cn/images/3/2023/05/B66wbs3e9wBQ6J6JoE9oCabcSrjqZg.jpg?sign=7e4532e00afea4427099552376d53d33&t=6ad24a00

查看字符集

SHOW VARIABLES LIKE 'character%';

https://file.lulublog.cn/images/3/2023/05/P63kk44F769v847FazwAZllrll9fff.jpg?sign=c44920d97bea8569ab1f42eecabe7fd5&t=6ad24a00

创建数据

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

https://file.lulublog.cn/images/3/2023/05/Fs1fjj12JmTZJk8vs8yB8iL8pap188.jpg?sign=be70fdf21e47e087d918bed3e35554a4&t=6ad24a00

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

插入中文数据

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

https://file.lulublog.cn/images/3/2023/05/p4BEwRFX17w1yz22c7T37tfx1yrRtS.jpg?sign=01e8baf173f8e3156ee8bd2dc98ad6d1&t=6ad24a00

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

docker文章
带到手机上看