解决docker启动MySQL:Can‘t create directory ‘/var/lib/mysql/‘ (Errcode: 17 - File exists)

方法:打开权限 重装容器

## 第一步
检查现有容器

输入:

docker ps -a

输出:

定位到报错的mysql容器id

## 第二步
删除现在的mysql容器
将【your container ID】改成上图得到的ID

docker rm 【your container ID】

## 第三步
删除目前宿主挂载目录下的文件夹 
将【your path】改成您的路径 比如:/database/MySQL

rm -rf 【your path】

## 第四步
新建宿主挂载目录

mkdir -p 【your path】/{logs,data,conf}

## 第五步
在宿主目录下手动创建cnf文件 (创建txt,复制内容进去,再改后缀)

【your path】/conf/my.cnf

 my.cnf文件的内容如下:

[mysqld]
 # 指定数据目录
 datadir=/var/lib/mysql
 # 服务端字符集
 character-set-server=utf8mb4
 # 字符集排序规则
 collation-server=utf8mb4_unicode_ci
 # error日志路径
 log-error=/var/log/mysql/error.log
 # 开启慢查询 1:开启	  【可选】
 slow_query_log=1
 # 定义3秒以上为慢查询	【可选】 
 long_query_time=3
 # 慢查询日志路径		  【可选】	
 slow-query-log-file=/var/log/mysql/slow.log
 # 大小写
 lower-case-table-names=1	
[client]
 default-character-set=utf8mb4
[mysql]
 default-character-set=utf8mb4

## 第六步
修改目录权限

chmod -R 777 【your path】/data
chmod -R 777 【your path】/logs

## 第七步
执行启动命令并查看mysql容器是否正常启动

docker run \
--privileged=true \
--name mysql \
-p 3306:3306 \
-v 【your path】/logs:/var/log/mysql \
-v 【your path】/data:/var/lib/mysql \
-v 【your path】/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-e MYSQL_ROOT_PASSWORD='【your password】' mysql \
--lower-case-table-names=1

撒花 完结

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值