1、docker下安装mysql
- 获取mysql镜像:
docker pull mysql:5.5
- 运行mysql容器
docker run --name mysql5.5 -v /docker/mysql5.5:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.5
解释:–name mysql 指定是容器的名称-v /docker/mysql-data:/var/lib/mysql 将主机目录/docker/mysql5.5挂载到容器的/var/lib/mysql上-p 3306:3306 设置端口映射,主机端口是3306,容器内部端口3306-e MYSQL_ROOT_PASSWORD=123456 设置容器参数,设置root用户的密码为123456mysql:5.5 镜像名:版本
2、mysql5.5中解决中文乱码问题
进入mysql容器:
docker exec -it mysql /bin/bash
打开 my.cnf文件:
vim /etc/mysql/my.cnf
在使用docker容器时键入vim命令时提示: vim: command not found这个时候就需要安装vim ,这时候需要敲:
apt-get update
等更新完毕以后再敲命令:
apt-get update
然后你发现vim 编辑器可以使用以后,在此my.cnf文件中添加如下字段(注意配置的字段细节):
utf8和utf8mb64区别,选用情况自己选择
"utf8"只支持每个字符最多三个字节超出就会报错,三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xFFFF,也就是 Unicode 中的基本多文平面(BMP)。也就是说,任何不在基本多文平面的 Unicode字符,都无法使用MySQL原有的 utf8 字符集存储。这些不在BMP中的字符包括哪些呢?最常见的就是Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和一些不常用的汉字,以及任何新增的 Unicode 字符等等。
1、在[client]字段里加入default-character-set=utf8mb64,如下:
[client]default-character-set=utf8mb64
2、在[mysqld]字段里加入character-set-server=utf8mb64,如下:
[mysqld]character-set-server=utf8mb64
3、在[mysql]字段里加入default-character-set=utf8mb64,如下:
[mysql]default-character-set=utf8mb64
4.设置接受数据包大小
mysql根据配置文件会限制server接受的数据包大小。
有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败。
查看目前配置
show VARIABLES like '%max_allowed_packet%';
显示的结果为:
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
以上说明目前的配置是:1M
【mysqld】添加
max_allowed_packet = 1024m
my.cnf修改结果截图:
退出容器后,并重启Mysql容器:
docker restart mysql
mysql中检查mysql字符集编码:
SHOW VARIABLES LIKE 'character_set_%'; SHOW VARIABLES LIKE 'collation_%';