做mysql的slave监控的时候,需要check_mysql脚本,check的时候报错:
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
1,错误信息如下:
[root@slave ~]# /usr/local/nagios/libexec/check_mysql -uadmin -P3306 -S /data/mbdata/open/mysql.sock -H127.0.0.1 -pxxxxx -d openshop -w 300 -c 360
/usr/local/nagios/libexec/check_mysql: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
[root@slave ~]#
2,执行check_mysql --help看下命令,发现也不行。
3,查看一下报错的libmysqlclient.so.18文件是否存在:
[root@db-m1-slave-1 ~]# find / -name libmysqlclient.so.18
/mysql-5.6.12/libmysql/libmysqlclient.so.18
/usr/local/mysql/lib/libmysqlclient.so.18
文件存在,但是无法识别。
4,可能是libmysqlclient的问题
搜索mysqlclient library linkage problem。
找到文章地址:http://stackoverflow.com/questions/2080679/mysqlclient-library-linkage-problem
发现有/etc/ld.so.conf.d/mysql-x86_64.conf这样一个配置文件,打开看看
cat /etc/ld.so.conf.d/mysql-x86_64.conf
[root@slave ~]# cat /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/lib64/mysql
进入目录/usr/lib64/mysql查看下有什么文件:
[root@slave ~]# ll /usr/lib64/mysql
总用量 3108
lrwxrwxrwx. 1 root root 26 9月 29 2013 libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
-rwxr-xr-x. 1 root root 1595176 12月 8 2012 libmysqlclient_r.so.16.0.0
lrwxrwxrwx. 1 root root 24 9月 29 2013 libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
-rwxr-xr-x. 1 root root 1582952 12月 8 2012 libmysqlclient.so.16.0.0
有一些软连接,而且带了后缀表示so.16之类的,但是没有so.18之类,看来是没有连接到这里,
可能是需要做一个软连接把/usr/local/mysql/lib/libmysqlclient.so.18变成/usr/lib64/libmysqlclient.so.18,
马上去做软连接:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18,然后再check下,check成功如下所示:
5,继续执行check_mysql来check一下
[root@slave ~]# /usr/local/nagios/libexec/check_mysql -unagios -P3306 -S -H127.0.0.1 --password='xxx@0512' /usr/local/mysql/mysql.sock -d test -w 60 -c 100
slave query error: Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation
[root@slave ~]#
报账号错误,
check
slave query error: Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation
账号错误,进入mysql界面赋予nagios账号权限
mysql> GRANT PROCESS, SUPER, REPLICATION CLIENT ON *.* TO nagios@'%' identified by 'xxx@0512';
6,再check
[root@slave ~]# /usr/local/nagios/libexec/check_mysql -unagios -P3306 -S -Hlocalhost --password='xxx@0512' -s /usr/local/mysql/mysql.sock -d test -w 60 -c 100
Slave IO: Yes Slave SQL: No Seconds Behind Master: (null)
mysql slave 检测失败,有错误信息: Slave IO: Yes Slave SQL: No Seconds Behind Master: (null)
关于 Slave IO: Yes Slave SQL: No Seconds Behind Master: (null),参考blog: http://blog.csdn.net/mchdba/article/details/25738991
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
1,错误信息如下:
[root@slave ~]# /usr/local/nagios/libexec/check_mysql -uadmin -P3306 -S /data/mbdata/open/mysql.sock -H127.0.0.1 -pxxxxx -d openshop -w 300 -c 360
/usr/local/nagios/libexec/check_mysql: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
[root@slave ~]#
2,执行check_mysql --help看下命令,发现也不行。
- [root@slave ~]# /usr/local/nagios/libexec/check_mysql --help
- /usr/local/nagios/libexec/check_mysql: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
- [root@slave ~]#
3,查看一下报错的libmysqlclient.so.18文件是否存在:
[root@db-m1-slave-1 ~]# find / -name libmysqlclient.so.18
/mysql-5.6.12/libmysql/libmysqlclient.so.18
/usr/local/mysql/lib/libmysqlclient.so.18
文件存在,但是无法识别。
4,可能是libmysqlclient的问题
搜索mysqlclient library linkage problem。
找到文章地址:http://stackoverflow.com/questions/2080679/mysqlclient-library-linkage-problem
发现有/etc/ld.so.conf.d/mysql-x86_64.conf这样一个配置文件,打开看看
cat /etc/ld.so.conf.d/mysql-x86_64.conf
[root@slave ~]# cat /etc/ld.so.conf.d/mysql-x86_64.conf
/usr/lib64/mysql
进入目录/usr/lib64/mysql查看下有什么文件:
[root@slave ~]# ll /usr/lib64/mysql
总用量 3108
lrwxrwxrwx. 1 root root 26 9月 29 2013 libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
-rwxr-xr-x. 1 root root 1595176 12月 8 2012 libmysqlclient_r.so.16.0.0
lrwxrwxrwx. 1 root root 24 9月 29 2013 libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
-rwxr-xr-x. 1 root root 1582952 12月 8 2012 libmysqlclient.so.16.0.0
有一些软连接,而且带了后缀表示so.16之类的,但是没有so.18之类,看来是没有连接到这里,
可能是需要做一个软连接把/usr/local/mysql/lib/libmysqlclient.so.18变成/usr/lib64/libmysqlclient.so.18,
马上去做软连接:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18,然后再check下,check成功如下所示:
- [root@slave ~]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
- [root@slave ~]#
- [root@slave ~]#
- [root@slave ~]# /usr/local/nagios/libexec/check_mysql --help
- check_mysql v2.0 (nagios-plugins 2.0)
- Copyright (c) 1999-2014 Nagios Plugin Development Team
- <devel@nagios-plugins.org>
- This program tests connections to a MySQL server
- Usage:
- check_mysql [-d database] [-H host] [-P port] [-s socket]
- [-u user] [-p password] [-S] [-l] [-a cert] [-k key]
- [-C ca-cert] [-D ca-dir] [-L ciphers] [-f optfile] [-g group]
- Options:
- -h, --help
- Print detailed help screen
- -V, --version
- Print version information
- --extra-opts=[section][@file]
- Read options from an ini file. See
- https://www.nagios-plugins.org/doc/extra-opts.html
- for usage and examples.
- ..................................
- -l, --ssl
- Use ssl encryptation
- -C, --ca-cert=STRING
- Path to CA signing the cert
- -a, --cert=STRING
- Path to SSL certificate
- -k, --key=STRING
- Path to private SSL key
- -D, --ca-dir=STRING
- Path to CA directory
- -L, --ciphers=STRING
- List of valid SSL ciphers
- .................................................
- Send email to help@nagios-plugins.org if you have questions regarding use
- of this software. To submit patches or suggest improvements, send email to
- devel@nagios-plugins.org
- [root@slave ~]#
5,继续执行check_mysql来check一下
[root@slave ~]# /usr/local/nagios/libexec/check_mysql -unagios -P3306 -S -H127.0.0.1 --password='xxx@0512' /usr/local/mysql/mysql.sock -d test -w 60 -c 100
slave query error: Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation
[root@slave ~]#
报账号错误,
check
slave query error: Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation
账号错误,进入mysql界面赋予nagios账号权限
mysql> GRANT PROCESS, SUPER, REPLICATION CLIENT ON *.* TO nagios@'%' identified by 'xxx@0512';
6,再check
[root@slave ~]# /usr/local/nagios/libexec/check_mysql -unagios -P3306 -S -Hlocalhost --password='xxx@0512' -s /usr/local/mysql/mysql.sock -d test -w 60 -c 100
Slave IO: Yes Slave SQL: No Seconds Behind Master: (null)
mysql slave 检测失败,有错误信息: Slave IO: Yes Slave SQL: No Seconds Behind Master: (null)
进mysql窗口去看详细信息
- [root@slave ~]# mysql
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 23
- Server version: 5.6.12-log Source distribution
- Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- mysql> show slave status\G
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for master to send event
- Master_Host: 10.xx.3.xx
- Master_User: repl
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql-bin.010294
- Read_Master_Log_Pos: 21764
- Relay_Log_File: mysql-relay-bin.003125
- Relay_Log_Pos: 91805
- Relay_Master_Log_File: mysql-bin.010275
- Slave_IO_Running: Yes
- Slave_SQL_Running: No
- Replicate_Do_DB: xx,xx_db,xxsystem
- Replicate_Ignore_DB:
- Replicate_Do_Table:
- Replicate_Ignore_Table:
- Replicate_Wild_Do_Table:
- Replicate_Wild_Ignore_Table:
- Last_Errno: 1590
- Last_Error: The incident LOST_EVENTS occured on the master. Message: error writing to the binary log
- Skip_Counter: 0
- Exec_Master_Log_Pos: 91642
- Relay_Log_Space: 1780004
- Until_Condition: None
- Until_Log_File:
- Until_Log_Pos: 0
- Master_SSL_Allowed: No
- Master_SSL_CA_File:
- Master_SSL_CA_Path:
- Master_SSL_Cert:
- Master_SSL_Cipher:
- Master_SSL_Key:
- Seconds_Behind_Master: NULL
- Master_SSL_Verify_Server_Cert: No
- Last_IO_Errno: 0
- Last_IO_Error:
- Last_SQL_Errno: 1590
- Last_SQL_Error: The incident LOST_EVENTS occured on the master. Message: error writing to the binary log
- Replicate_Ignore_Server_Ids:
- Master_Server_Id: 71
- Master_UUID: 9b0dcf62-29f4-11e3-9471-677b33903869
- Master_Info_File: mysql.slave_master_info
- SQL_Delay: 0
- SQL_Remaining_Delay: NULL
- Slave_SQL_Running_State:
- Master_Retry_Count: 86400
- Master_Bind:
- Last_IO_Error_Timestamp:
- Last_SQL_Error_Timestamp: 140512 11:29:54
- Master_SSL_Crl:
- Master_SSL_Crlpath:
- Retrieved_Gtid_Set:
- Executed_Gtid_Set:
- Auto_Position: 0
- 1 row in set (0.00 sec)
- mysql>
关于 Slave IO: Yes Slave SQL: No Seconds Behind Master: (null),参考blog: http://blog.csdn.net/mchdba/article/details/25738991
7,slave重做之后,再check,slave状态是正常的。
# /usr/local/nagios/libexec/check_mysql -unagios -P3306 -S -s /usr/local/mysql/mysql.sock -Hlocalhost --password='xxx@0512' -d test -w 60 -c 100
- [root@slave ~]# /usr/local/nagios/libexec/check_mysql -unagios -P3306 -S -s /usr/local/mysql/mysql.sock -Hlocalhost --password='xxx@0512' -d test -w 60 -c 100
- Uptime: 18431321 Threads: 3 Questions: 1447646 Slow queries: 735 Opens: 18605 Flush tables: 1 Open tables: 214 Queries per second avg: 0.078 Slave IO: Yes Slave SQL: Yes Seconds Behind Master: 0|Connections=1380c;;; Open_files=32;;; Open_tables=214;;; Qcache_free_memory=66980240;;; Qcache_hits=778c;;; Qcache_inserts=5338c;;; Qcache_lowmem_prunes=0c;;; Qcache_not_cached=12516c;;; Qcache_queries_in_cache=34;;; Queries=1447647c;;; Questions=99727c;;; Table_locks_waited=0c;;; Threads_connected=1;;; Threads_running=1;;; Uptime=18431321c;;; 'seconds behind master'=0.000000s;60.000000;100.000000;
- [root@db-m1-slave-1 ~]#