mysql 服务启动报错 Errcode 13 Permission denied

创建日期: 2022-11-22 10:06 | 作者: 风波 | 浏览次数: 11 | 分类: MySQL

场景一:使用 mysqld_safe 启动 mysqld

使用命令 mysqld_safe --datadir=./mydata 启动 mysql 服务的时候,服务没起来,查看目录 /var/log/mysql/ 的日志,发现是创建文件时没有权限。

警告查找,在 https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/starting-server-troubleshooting.html 找到解决方案,就是把目录所有文件的 owner 改成 mysql 就可以了。

但是,改了还是不行,因为 mydata 的上级目录仍然没有 mysql 的权限。所以,把 mydata mv/var/lib/mysql/ 中,再通过 mysqld_safe --datadir=/var/lib/mysql/mydata 命令启动,就可以成功了。

场景二:使用 docker 启动mysql

使用 docker 启动 mysql 服务的时候,使用的仍然是旧数据文件,但是启动数据库后,没有加载旧的数据库。 如果还是文件权限的问题,那么需要在容器内部修改文件的权限

  1. 进入容器 xx_mysql: docker exec -it xx_mysql bash

  2. 修改目录权限:chown mysql:mysql /var/lib/mysql/mydata

  3. 退出容器,并重启 docker 容器:docker-compose restart xx_mysql

然后就可以了。

11 浏览
10 爬虫
0 评论