当前位置:   article > 正文

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

mysql can't create directory

方法:打开权限 重装容器

## 第一步
检查现有容器

输入:

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文件的内容如下:

  1. [mysqld]
  2. # 指定数据目录
  3. datadir=/var/lib/mysql
  4. # 服务端字符集
  5. character-set-server=utf8mb4
  6. # 字符集排序规则
  7. collation-server=utf8mb4_unicode_ci
  8. # error日志路径
  9. log-error=/var/log/mysql/error.log
  10. # 开启慢查询 1:开启 【可选】
  11. slow_query_log=1
  12. # 定义3秒以上为慢查询 【可选】
  13. long_query_time=3
  14. # 慢查询日志路径 【可选】
  15. slow-query-log-file=/var/log/mysql/slow.log
  16. # 大小写
  17. lower-case-table-names=1
  18. [client]
  19. default-character-set=utf8mb4
  20. [mysql]
  21. default-character-set=utf8mb4

## 第六步
修改目录权限

  1. chmod -R 777 【your path】/data
  2. chmod -R 777 【your path】/logs

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

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

撒花 完结

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/699197
推荐阅读
相关标签
  

闽ICP备14008679号