问题
mysqld_safe error: log-error set to '/home/mysql/data/mysqldata1/log/error.log',
however file don't exists. Create writable for user 'mysql'.
1. 检查目录是否存在
确保目录 /home/mysql/data/mysqldata1/log/ 存在。如果不存在,创建它:
mkdir -p /home/mysql/data/mysqldata1/log/
2. 设置正确的所有权和权限
目录和文件必须由 mysql 用户和组拥有,并且 mysql 用户必须具有写入权限。
a. 将目录所有权更改为 mysql 用户:
chown -R mysql:mysql /home/mysql/data/mysqldata1/log/
b. 设置适当的权限:
chmod -R 750 /home/mysql/data/mysqldata1/log/
这将为 mysql 用户赋予读、写和执行权限,而组和其他用户的权限受限。
- 创建错误日志文件
如果文件不存在,创建它并确保 mysql 用户可以写入:
touch /home/mysql/data/mysqldata1/log/error.log
chown mysql:mysql /home/mysql/data/mysqldata1/log/error.log
chmod 640 /home/mysql/data/mysqldata1/log/error.log
- 检查 MySQL 配置文件
检查 MySQL 配置文件(通常是 /etc/my.cnf 或 /etc/mysql/my.cnf),确保 log-error 配置项正确设置:
[mysqld]
log-error=/home/mysql/data/mysqldata1/log/error.log
- 重启 MySQL 服务
完成更改后,重启 MySQL 服务以应用新配置:
systemctl restart mysqld
或者:
service mysql restart
- 检查日志文件
MySQL 重启后,检查错误日志文件,确保日志正在被写入:
tail -f /home/mysql/data/mysqldata1/log/error.log