获取镜像
1 docker pull mysql:5.7.22
启动mysql
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=123456 \ -d mysql:5.7.22
若导入的sql文件过大,会导致无法导入,删除刚刚启动的容器,重新输入以下命令启动容器
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=123456 \ -d mysql:5.7.22
进入刚刚启动的容器
docker exec -it mysql bash #进入容器
cd /etc/mysql/mysql.conf.d/ echo "max_allowed_packet= 128M" >> mysqld.cnf #设置导入的sql文件开始最大不超过128M
exit #退出容器
docker restart mysql #重启mysql
需要将刚刚配置的文件持久化,否则启动新的mysql容器时,之前的配置会失效
cd /usr/local/docker/mysql/conf #进入需要宿主机存放文件目录 docker cp mysql:/etc/mysql . #将容器中相关文件拷贝到当前目录下
cd mysql #进入刚刚拷贝到的mysql文件
mv *.* .. #将mysql下的所有文件移动到conf下,即上级目录下
rm -rm mysql #删除mysql
docker rm -f mysql #删除mysql容器,并执行以下命令重新启动一个mysql容器,并将相关文件持久化
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=123456 \
-d mysql:5.7.22