docker run -p 3306:3306 --name mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ROOT -d mysql:5.7.22
mysql默认一次接收sql文件大小为16m
此时16m配置需要生效还需要把这个配置追加到mysqld.cnf中,
root@3841bbd45833:/etc/mysql/mysql.conf.d# echo "max_allowed_packet= 16M" >> mysqld.cnf
此时只是在这个容器中设置16m,并没有持久化。
因此我们需要将容器的配置文件复制到宿主机中保存
目标:root@3841bbd45833:/# cd /etc/mysql/ 此目录底下是容器的配置文件
拷贝
root@Ubuntu:/usr/local/docker/mysql/conf# docker cp mysql:/etc/mysql .
将/ect/mysql目录下文件全部拷贝到当前目录。当前目录为mysql/conf
然后把mysql里面的文件全部移动到 conf中 mv *.* ..
然后使用数据卷挂载到容器
第一,删除掉此容器,因为文件以及过来了
第二,
docker run -p 3306:3306 --name mysql
-v /usr/local/docker/mysql/conf:/etc/mysql
-v /usr/local/docker/mysql/logs:/var/log/mysql
-v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ROOT -d mysql:5.7.22
然后进入容器的mysqld.cnf 下,可以看到追加的16m设置