mysql flush logs时出现ERROR 1105

mysql 5.7.11 on Oracle Linux 5.8
查看eror log所在目录为
mysql> show variables like '%log_error%';
+---------------------+---------------------+
| Variable_name       | Value               |
+---------------------+---------------------+
| binlog_error_action | ABORT_SERVER        |
| log_error           | /var/log/mysqld.log |
| log_error_verbosity | 3                   |
+---------------------+---------------------+
现在想rotate日志,如下动作:
[root@sdb5-11g log]# mv mysqld.log mysqld.log.old
完成后再执行flush logs,但是出现以下错误:


  • mysql> FLUSH LOGS;  
  • ERROR 1105 (HY000): Unknown error
由于日志所在目录只有root有权限新建文件,从mysql客户端执行flush logs其实是以mysql这个账号去执行的,所以会权限不足。
[root@sdb5-11g log]# ls -ld
drwxr-xr-x 15 root root 4096 May 27 08:39 .
解决方法:
在该目录下新增一个文件mysqld.log
vi mysqld.log
修改权限:
chown mysql:mysql mysqld.log
chmod o-rmysqld.log
最后权限如下:
[root@sdb5-11g log]# ls -l mysqld.log
-rw-r----- 1 mysql mysql 8284 May 27 09:41 mysqld.log



  • mysql> FLUSH LOGS;  
  • ERROR 1105 (HY000): Unknown error
### 关于 MySQL 错误日志的位置及相关问题 MySQL 的错误日志通常存储在 `/var/log/mysql/error.log` 路径下,具体取决于系统的配置和版本。以下是关于该路径的一些常见问题及其解决方案。 #### 查找与分析 MySQL 错误日志 1. **确认错误日志路径** 默认情况下,MySQL 将错误日志写入到 `/var/log/mysql/error.log` 文件中。可以通过查看 MySQL 配置文件(如 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`)中的 `[mysqld]` 部分来验证实际的日志路径。 ```ini [mysqld] log-error=/var/log/mysql/error.log ``` 2. **检查错误日志内容** 使用命令行工具读取错误日志的内容,以便快速定位问题。 ```bash tail -n 50 /var/log/mysql/error.log ``` 此外,也可以使用 `grep` 工具过滤特定关键字的错误信息。 ```bash grep -i "error" /var/log/mysql/error.log ``` 3. **解决常见的错误类型** - **InnoDB 初始化失败**: 如果发现 InnoDB 存储引擎初始化失败的信息,可能是由于磁盘空间不足或数据目录权限设置不当所致[^1]。 解决方法包括清理磁盘空间或将数据目录移动至具有更大容量的空间。 - **Socket 文件丢失**: 当错误日志显示无法通过套接字连接,需确保已正确配置并启用 Unix 套接字支持[^2]。 - **内存分配异常**: 若发生 OOM (Out of Memory) 导致的服务崩溃,在错误日志中会记录相关事件。此建议优化查询性能或增加系统可用 RAM。 4. **轮转机制管理大尺寸日志文件** 大型生产环境下的 MySQL 实例会产生大量日志条目,因此有必要实施日志轮转策略以防止单个文件占用过多磁盘资源。可通过编辑 `/etc/logrotate.d/mysql-server` 来定义保留周期与压缩选项。 示例配置片段如下所示: ```logrotate /var/log/mysql/*.log { daily missingok rotate 14 compress delaycompress notifempty create 640 root adm sharedscripts postrotate test -x /usr/bin/mysqladmin || exit 0 /usr/bin/mysqladmin flush-logs > /dev/null 2>&1 || true endscript } ``` --- ### 提升自动化程度的一键部署方案 针对频繁执行的任务流程,例如 Nacos 及其关联数据库实例的搭建工作流,可考虑构建脚本化形式的一键部署包。下面给出基于 Shell Script 的简化示例框架: ```shell #!/bin/bash # Step A: Install Dependencies and Configure Environment Variables apt-get update && apt-get install -y mysql-server nacos-binaries other-packages # Step B: Customize Configuration Files Automatically sed -i 's/^datadir=.*/datadir=\/custom\/path/' /etc/mysql/my.cnf echo "[client]" >> ~/.my.cnf echo "host=localhost" >> ~/.my.cnf # Step C: Initialize Database Schema According To Requirements mysql -u root <<EOF CREATE DATABASE IF NOT EXISTS nacos; USE nacos; SOURCE /path/to/nacos-sql-init.sql; GRANT ALL PRIVILEGES ON *.* TO 'nacos_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EOF # Step D: Start Services And Verify Statuses service mysql start nohup java -jar nacos-server.jar >/dev/null 2>&1 & sleep 5 curl http://localhost:8848/nacos/v1/console/index.html ``` 上述脚本仅作为概念展示用途,请依据实际情况调整参数值及逻辑细节后再投入正式运行环境中测试稳定性[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值