linux下docker启动mysql不成功解决方法
通常,我们在linux下运行如下命令,便可以正常的启动mysql并实现目录挂载等
sudo docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql
但是启动之后输入docker ps发现 mysql并没有启动成功
于是输入 docker ps -a 发现了这一幕
在status这一栏,端口并未映射
那么问题在哪呢?
输入 docker logs mysql 显示
这是什么意思呢?
在mysql8以上的版本,我们需要把/var/lib/mysql-files 这个目录给挂载出来
当指定了外部配置文件与外部存储路径时,也需要指定 /var/lib/mysql-files的外部目录,
所以在 主机新建/home/mysql/mysql-files目录,
在启动容器时 需要加上
-v /home/mysql/mysql-files:/var/lib/mysql-files/
sudo docker run -it -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -v /home/mysql/mysql-files:/var/lib/mysql-files/ \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql
如图,我们成功的启动了mysql!