1.docker镜像的下载(本人不使用默认的最新版本)
docker pull mysql:5.7
2.运行容器
docker run -p 3306:3306 --name mysql01 -v /mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
3.创建本地配置文件使其挂载到docker容器中
vim /mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
4.进入MySQL容器,登陆MySQL
进入mysql容器
docker exec -it mysql01 /bin/bash
登陆mysql
mysql -u root -p
查看MySQL的字符集:
show variables like’character%’; 看到和下面的图一样改成utf8编码就成功了,不会出现中文乱码了。Docker下载的mysql都是latin1编码。
mysql> show variables like’character%’;
±-------------------------±---------------------------+
| Variable_name | Value |
±-------------------------±---------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
±-------------------------±---------------------------+
8 rows in set (0.00 sec)
5.大功告成可以远程连接mysql服务器了
注:若代码中连接失败,可以跟换mysql连接驱动包,即使用 稍高版本的