docker 阅读 2478
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=5c9ea117d6cf1ec5d3c377a18aa10800&t=6aea0500

二、拉取镜像

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

docker pull mysql:5.7

https://file.lulublog.cn/images/3/2023/05/yOvRZjvvujv0BVV1KyYoVIyvTS3YK1.jpg?sign=343a41ccf03c50699ab5ed65f8f5fcd4&t=6aea0500

三、查看镜像

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

docker images mysql

https://file.lulublog.cn/images/3/2023/05/tu4OGHLskgcHni1GIIIihQi6liiGgI.jpg?sign=437551474ed8964d3ea00c5197fb1fac&t=6aea0500

四、启动镜像

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=adff344d860da23c761d5c02a068fc51&t=6aea0500

docker ps

https://file.lulublog.cn/images/3/2023/05/wcQasUUnhiSacc34UbBuSn24y6wWCW.jpg?sign=03816c57bcf2c4cb84a4ed6878297b45&t=6aea0500

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

https://file.lulublog.cn/images/3/2023/05/ENFnLnUJyrFRC4C145ScJAco15R5NO.jpg?sign=e0fc2e12d307924973928274eb9cbe97&t=6aea0500

五、创建数据

建库建表插入数据

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=a4daeb9190c716955c61a22fcb622bea&t=6aea0500

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

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

插入中文数据

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

https://file.lulublog.cn/images/3/2023/05/LHX33ibIb6VVJoiTvVBxIIi6i7XIT3.jpg?sign=08ca41b605709e3f1edb9a45d386dcf4&t=6aea0500

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

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

SHOW VARIABLES LIKE 'character%';

https://file.lulublog.cn/images/3/2023/05/Xj6h8F8nR4K4H4p8Rj6uMPRks8RnsL.jpg?sign=383abe1f49cc8aec4a988e24152cb66e&t=6aea0500

六、实战版

先把之前的 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=18643d86320446b75f23872c0329c095&t=6aea0500

重启 mysql

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

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

查看字符集

SHOW VARIABLES LIKE 'character%';

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

创建数据

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

https://file.lulublog.cn/images/3/2023/05/Fs1fjj12JmTZJk8vs8yB8iL8pap188.jpg?sign=870840490fc58829e807dadb9cb9a0e6&t=6aea0500

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

插入中文数据

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

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

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

docker文章
带到手机上看