要达到的目的
- 实现mysql安装,并且能让外部进行连接
- 实现数据卷的挂载,让容器被删除时,数据不会丢失
- 解决无法插入中文数据,或者中文乱码
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/容器名
然后再新建数据库,不能在原有的数据库中测试
再次查看数据库字符集:
发现可以插入中文数据了: