【MySQL】MySQL开启general_log报错ERROR 29 (HY000) not found (OS errno 13 - Permission denied)
时间: 2024-09-11 21:04:11 浏览: 128
线上MYSQL同步报错故障处理方法总结(必看篇)
MySQL的general_log是一个用于记录所有SQL语句的功能,可以帮助你诊断数据库操作的问题。当你尝试开启general_log功能时,可能会遇到报错ERROR 29 (HY000) not found (OS errno 13 - Permission denied)。这通常是由于文件系统权限设置不当导致MySQL服务器没有足够的权限来写入general_log文件。
要解决这个问题,你需要按照以下步骤操作:
1. 首先,检查当前general_log文件的路径,可以通过以下SQL命令查询:
```
SHOW VARIABLES LIKE 'general_log_file';
```
2. 确认该路径下的文件和文件夹MySQL用户(通常是mysql)有写入权限。
3. 如果没有写入权限,你需要修改文件夹的权限,可以使用以下命令:
```
sudo chmod -R 777 /path/to/log/folder
```
其中`/path/to/log/folder`是general_log文件所在的目录路径。
4. 另外,你也可以通过改变general_log文件的所有者来解决权限问题:
```
sudo chown -R mysql:mysql /path/to/log/folder
```
5. 修改了权限之后,再次尝试开启general_log:
```
SET GLOBAL general_log = 'ON';
```
在进行这些操作时,请确保你有足够的权限,并且了解改变文件权限可能会带来安全风险。建议在生产环境中不要使用过于宽松的权限设置。
阅读全文