mysql5.7的错误日志中最常见的note级别日志解释

本文详细解析了MySQL5.7版本中多线程从库出现的错误日志,并深入源代码层面解释了这些日志的具体含义及输出条件,帮助读者理解并解决相关问题。

mysql5.7从库多线程报错:

2018-02-25T07:11:52.613073Z 11 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 124; events assigned = 211909633; worker queues filled over overrun level = 165380; waited due a Worker queue full = 69203; waited due the total size = 1987; waited at clock conflicts = 0 waited (count) when Workers occupied = 9003466 waited when Workers occupied = 0


我们通过源代码,找到下面一段,该段实现了上述日志的输出。

  if ((my_now – rli->mts_last_online_stat)>=

           mts_online_stat_period)

        {

         sql_print_information(“Multi-threadedslave statistics%s: “

                                “seconds elapsed = %lu; “

                                “events assigned = %llu; “

                                “worker queues filled over overrun level = %lu;”

                                “waited due a Worker queue full = %lu; “

                                “waited due the total size = %lu; “

                                “waited at clock conflicts = %llu “

                               “waited(count) when Workers occupied = %lu “

                                “waited when Workers occupied = %llu”,

                                rli->get_for_channel_str(),

                                static_cast<unsignedlong>

                                (my_now – rli->mts_last_online_stat),

                                rli->mts_events_assigned,

                                rli->mts_wq_overrun_cnt,

                                rli->mts_wq_overfill_cnt,

                                rli->wq_size_waits_cnt,

                                rli->mts_total_wait_overlap,

                                rli->mts_wq_no_underrun_cnt,

                                rli->mts_total_wait_worker_avail);

          rli->mts_last_online_stat=my_now;   

 当(my_now – rli->mts_last_online_stat) >= mts_online_stat_period,会实现打印日志,以及最后一句rli->mts_last_online_stat=my_now,打印日志后重新将my_now赋值给rli->mts_last_online_stat  可以得知, seconds elapsed 就是上一次统计跟这一次统计的时间间隔。

mts_online_stat_period =120秒,硬代码,因此就是几乎每隔120秒,就有上述日志的输出。




http://blog.youkuaiyun.com/isoleo/article/details/54342180


<think>嗯,用户想知道如何在Linux系统中找到MySQL 5.7错误日志位置。我记得错误日志的位置通常是在MySQL的配置文件中指定的,也就是my.cnf或者my.ini。不过具体路径可能因安装方式不同而有所变化。 首先,我应该先考虑默认的安装路径。根据引用[2]中的内容,配置文件中有一行log-error=/opt/mysql/log/mysqld.log,这说明用户可能自定义了错误日志的位置。但如果是默认安装,可能路径会不同。比如,有些情况下错误日志可能在/var/log/mysqld.log或者/var/log/mysql/error.log。不过用户用的是5.7版本,可能需要检查配置文件。 接下来,用户可能需要通过命令行查找。使用SHOW VARIABLES LIKE 'log_error';这个SQL命令可以直接在MySQL中查询日志路径。不过如果用户无法登录MySQL,可能需要直接在配置文件中查找。引用[5]中提到解压安装的步骤,可能用户是通过tar包安装的,这时候配置文件可能在/etc/my.cnf或者/etc/mysql/my.cnf,或者安装目录下的my.cnf。 另外,引用[3]提到server-id的设置问题,但这里可能无关。而引用[4]和[5]中的安装步骤显示,安装过程中可能需要手动配置日志路径。因此,用户需要检查他们的my.cnf文件中的log-error参数,或者使用ps -ef | grep mysqld来查看MySQL进程的启动参数,看是否有--log-error指定路径。 可能用户没有修改过配置,那么默认路径可能是在数据目录下,比如/usr/local/mysql/data/hostname.err,但这也取决于安装方式。如果是通过系统包管理器安装的,可能日志在/var/log/目录下,而通过tar包安装的可能在安装目录下的data文件夹里。 总结步骤应该是:1. 检查MySQL配置文件中的log-error设置;2. 使用MySQL命令查询;3. 查看进程参数;4. 检查常见默认路径。需要将这些步骤详细说明,并给出具体命令,确保用户能够逐步操作找到错误日志的位置。</think>### 查找MySQL 5.7错误日志位置的步骤 #### 1. **通过MySQL配置文件定位** MySQL错误日志路径通常定义在配置文件`my.cnf`中,具体步骤如下: - **查找配置文件位置** MySQL默认会从以下路径加载配置文件(优先级从高到低): ```bash /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf ``` - **查看`log-error`参数** 在配置文件中搜索`log-error`字段,例如: ```ini [mysqld] log-error=/opt/mysql/log/mysqld.log # 示例路径,见引用[2] ``` 如果未显式设置,默认路径可能是数据目录下的`hostname.err`(例如`/var/lib/mysql/hostname.err`)[^2]。 #### 2. **通过MySQL命令查询** 登录MySQL后执行以下SQL语句: ```sql SHOW VARIABLES LIKE 'log_error'; ``` 返回结果类似: ``` +---------------+--------------------------+ | Variable_name | Value | +---------------+--------------------------+ | log_error | /var/log/mysql/error.log | +---------------+--------------------------+ ``` #### 3. **通过进程参数验证** 查看MySQL进程的启动参数: ```bash ps -ef | grep mysqld ``` 若输出中包含`--log-error=/path/to/error.log`,则直接显示日志路径。 #### 4. **常见默认路径** - 通过RPM包安装:`/var/log/mysqld.log` - 通过tar包安装(见引用[5]):`/usr/local/mysql/data/hostname.err` - 系统默认路径:`/var/log/mysql/mysql.log`或`/var/log/mysql/error.log` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值