要达到的目的

  1. 实现mysql安装,并且能让外部进行连接
  2. 实现数据卷的挂载,让容器被删除时,数据不会丢失
  3. 解决无法插入中文数据,或者中文乱码
docker pull mysql

启动mysql

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

查看数据卷是否挂载成功

进入mysql容器

docker exec -it 49aecf50ef9c /bin/bash

基础操作:

外部连接数据库

自己下载数据库连接工具,例如:Navicat

查看本机地址

ip addr

使用navicat连接:

插入中文数据看看

发现无法插入中文数据

原因:

查看数据库默认字符集:

SHOW VARIABLES LIKE 'character_set_%';

发现是latin1,而不是utf8

将字符集修改为utf-8格式:

修改配置文件(/root/mysql/conf):

在/root/mysql/conf 目录下新建一个my.cnf文件使用vim进行编辑:

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

然后重启mysql容器

docker restart 容器id/容器名

然后再新建数据库,不能在原有的数据库中测试

再次查看数据库字符集:

发现可以插入中文数据了: