docker mysql问题记录和解决方法
程序员文章站
2022-04-07 10:00:37
docker一个mysql时,通过dockerfile首次生成镜像且启动容器,查看mysql成功。
再次通过-v参数指定挂载目录后,生成镜像,访问mysql报错:
命令:
docke...
docker一个mysql时,通过dockerfile首次生成镜像且启动容器,查看mysql成功。
再次通过-v参数指定挂载目录后,生成镜像,访问mysql报错:
命令:
docker run -d -p 3307:3306 -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql --name dbserver2 csphere/mysql:5.5
报错信息:
[root@47b381a290a6 /]# mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
经过百度,这个报错信息一般是找不到mysql.sock文件,或者权限不足引起。
删除异常容器:
[root@localhost mysql]# docker stop dbserver2 dbserver2 [root@localhost mysql]# [root@localhost mysql]# docker rm dbserver2 dbserver2
然后使用进入容器的方法启动容器:
[root@localhost mysql]# docker run -it -p 3307:3306 -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql --name dbserver2 csphere/mysql:5.5 ===> MariaDB not install... ===> Initializing maria database... chown: changing ownership of '/var/lib/mysql': Permission denied Cannot change ownership of the database directories to the 'mysql' user. Check that you have the necessary permissions and try again. ===> System databases initialized... ===> Waiting for MariaDB to start...
发现在dockerfile文件指定的脚本firstrun_maria执行过程中,有一句命令如下:
echo "===> Initializing maria database... " mysql_install_db --user=mysql --ldata=${DATA_DIR} echo "===> System databases initialized..."
在执行mysql_install_db过程中,提示权限不足。
经过百度,得知:Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示以上信息。解决方法如下:
1. 在docker run中加入 –privileged=true 给容器加上特定权限
2. 关闭selinux
3. 在selinux添加规则,修改挂载目录de
我采用了第一种方法,问题解决。命令如下:
docker run -d -p 3306:3306 -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql --privileged=true --name dbserver csphere/mysql:5.5
推荐阅读
-
Mysql5.7中使用group concat函数数据被截断的问题完美解决方法
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
-
mysql 忘记密码的解决方法(linux和windows小结)
-
mysql proxy问题的解决方法
-
html5 canvas fillRect坐标和大小的问题解决方法
-
mysql启动时出现ERROR 2003 (HY000)问题的解决方法
-
Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法
-
sql server 2000阻塞和死锁问题的查看与解决方法
-
mysql报错1033 Incorrect information in file: ‘xxx.frm’问题的解决方法
-
vue踩坑记录之数组定义和赋值问题