关于docker安装mysql时遇到的问题解决

一共出现两个问题

  • docker ps -a 发现异常退出的状态(status(1)

  • sqlyog连接docker报2508错误

前期安装步骤:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
             
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
sudo yum install docker-ce docker-ce-cli containerd.io

sudo systemctl start docker

sudo systemctl enable docker 

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

docker pull mysql

docker run --privileged=true --name mysql -p 3306:3306 \
-v /dockerdata/mysql/conf:/etc/mysql/ \
-v /dockerdata/mysql/log:/var/log/mysql \
-v /dockerdata/mysql/data:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql

docker ps -a

啪!Error processing tar file(exit status 1): write file : no space left on device

啪!Sqlyog测试连接不成功报2508错误

一、空间不足导致异常退出

埋个雷,不知道为什么vagrant一键创建的虚拟机,空间是满的

df -h 查看磁盘使用情况,发现磁盘几乎是满的

1
在这里插入图片描述

docker info 查看docker详细信息,获得docker的存储路径

在这里插入图片描述

解决方式:把docker的存储目录挂载到别的盘下(附挂载教程)

  1. 先用VirtualBox给虚拟机新建一个虚拟硬盘,然后在ssh中依次输入如下命令
  2. lsblk 获得新的虚拟硬盘的盘名,假设这里是sdb
  3. fdisk /dev/sdb 分区命令,对/sdb分区,先输入n,在输入p,一路enter然后w
  4. mkfs -t ext4 /dev/sdb1 格式化分区(即添加UUID),可以通过lsblk看刚刚的分区
  5. 永久挂载 vi /etc/fstab
    在这里插入图片描述

然后可以愉快的pull了 docker pull mysql

二、SqlYog报2508错误

系Mysql配置原因

先把mysql开开

docker run --privileged=true --name mysql -p 3306:3306 \
-v /dockerdata/mysql/conf:/etc/mysql/ \
-v /dockerdata/mysql/log:/var/log/mysql \
-v /dockerdata/mysql/data:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql

#通过docker ps -a 获得container-id
docker ps -a

docker exec -it <container-id> /bin/sh进docker容器

mysql -uroot -p

Mysql里配置

GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxx' PASSWORD EXPIRE NEVER;
flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY ‘root密码’;
flush privileges;

然后就可以sqlyog连接了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker安装MySQL出现问题的情况下,有几个可能的解决方案。 1. 首先,根据引用中的错误信息,可以尝试检查配置文件目录权限的问题。报错中提到无法读取'/etc/mysql/conf.d/'目录。可以通过确保相关目录具有正确的权限来解决问题。例如,可以使用以下命令更改目录权限: ``` sudo chmod -R 755 /etc/mysql/conf.d/ ``` 2. 另外,根据引用中的命令行,如果您创建的容器在运行`docker ps`未显示,请检查容器是否已停止。可以使用`docker logs`命令来查看容器的日志,以获取更多关于容器启动失败的信息。 3. 如果在删除镜像遇到冲突错误,如引用所述,可以尝试使用镜像名称和标签的方式删除镜像,而不是使用镜像ID。例如,使用以下命令删除镜像: ``` docker rmi <镜像名称:标签> ``` 4. 当使用Navicat连接MySQL出现2003错误,可能是由于几个原因引起的。首先,您可以查看MySQL配置文件中的绑定地址是否为'127.0.0.1',如引用所述。如果是,则只能在本地访问MySQL。如果需要从其他主机访问MySQL,请将绑定地址更改为适当的IP地址。 5. 最后,如果在Docker容器中启动的实例没有运行,并且连接MySQL出现2003错误,可以尝试使用以下命令来启动容器实例并进入容器内部: ``` docker start <容器名称> docker exec -it <容器名称> bash ``` 以上是一些可能的解决方案,您可以根据具体情况尝试其中的一种或多种方法来解决Docker安装MySQL失败的问题。如果问题仍然存在,请提供更多详细信息以便我们更好地帮助您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值