zoukankan      html  css  js  c++  java
  • Nagios显示器mysql定从库: libmysqlclient.so.18: cannot open shared object file: No such

    做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看下命令,发现也不行。


    [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 statusG
    *************************** 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 ~]# 


    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    Linux下用wget下载百度网盘资源
    android系统编译记录
    ubuntu 安装JDK & eclipse
    Linux安全攻略-僵尸进程
    smack user登陆
    smack 创建账户
    我的第一个开源App(彩票开奖查询)
    REST简介
    HTTP 状态码
    测试 ScribeFire Blog Editor
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4828451.html
Copyright © 2011-2022 走看看