The check_mysql script is required for mysql slave monitoring and an error is reported during check:
Error while loading shared libraries: libmysqlclient. so.18: cannot open shared object file: No such file or directory
1. The error message is as follows:
[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. Run the check_mysql -- help Command to check whether the command works.
[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. Check whether the error libmysqlclient. so.18 file exists:
[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
The file exists but cannot be identified.
4. It may be a problem with libmysqlclient.
Search for mysqlclient library linkage problem.
Locate Article address: http://stackoverflow.com/questions/2080679/mysqlclient-library-linkage-problem
Found a configuration file such as/etc/ld. so. conf. d/mysql-x86_64.conf, open it and have a look
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
Go to the/usr/lib64/mysql directory to view the files:
[Root @ slave ~] # Ll/usr/lib64/mysql
Total usage 3108
Lrwxrwxrwx. 1 root 26 August September 29 2013 libmysqlclient_r.so.16-> libmysqlclient_r.so.16.0.0
-Rwxr-xr-x. 1 root 1595176 August December 8 2012 libmysqlclient_r.so.16.0.0
Lrwxrwxrwx. 1 root 24 August September 29 2013 libmysqlclient. so.16-> libmysqlclient. so.16.0.0
-Rwxr-xr-x. 1 root 1582952 August December 8 2012 libmysqlclient. so.16.0.0
There are some soft connections with a suffix indicating so.16 and so on, but there is no so.18 and so on, it seems that there is no connection here,
A soft connection may be required to change/usr/local/mysql/lib/libmysqlclient. so.18 to/usr/lib64/libmysqlclient. so.18,
Perform a soft connection immediately: ln-s/usr/local/mysql/lib/libmysqlclient. so.18/usr/lib64/libmysqlclient. so.18. check again. The check is successful as follows:
[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 --helpcheck_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 serverUsage: 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 useof this software. To submit patches or suggest improvements, send email todevel@nagios-plugins.org[root@slave ~]#
5. Continue to run check_mysql to check
[Root @ slave ~] #/Usr/local/nagios/libexec/check_mysql-unagios-P3306-S-H127.0.0.1 -- password = 'xxx @ 100'/usr/local/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 ~] #
Account Error reported,
Check
Slave query error: Access denied; you need (at least one of) the SUPER, replication client privilege (s) for this operation
Account Error. Go to the mysql interface and grant nagios account permissions.
Mysql> grant process, SUPER, replication client on *. * TO nagios @ '%' identified by 'xxx @ 0512 ';
6. check again
[Root @ slave ~] #/Usr/local/nagios/libexec/check_mysql-unagios-P3306-S-Hlocalhost -- password = 'xxx @ 0512 '-s/usr/local/mysql. sock-d test-w 60-c 100
Slave IO: Yes Slave SQL: No Seconds Behind Master: (null)
Mysql slave detection failed with error message: Slave IO: Yes Slave SQL: No Seconds Behind Master: (null)
Go to the mysql window to view details.
[root@slave ~]# mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 23Server version: 5.6.12-log Source distributionCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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: NULLMaster_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: 01 row in set (0.00 sec)mysql>
About Slave IO: Yes Slave SQL: No Seconds Behind Master: (null), refer to blog: http://blog.csdn.net/mchdba/article/details/25738991
7. After the slave is redone, check again. The slave status is normal.
#/Usr/local/nagios/libexec/check_mysql-unagios-P3306-S-s/usr/local/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 ~]#