标题:[实践Ok]yum remove mysql时出现还会移除perl-DBD-MySQL的情况原因排查。 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Tue, 05 Dec 2017 16:07:23 +0000 作者:jackxiang 地址:https://jackxiang.com/post/9547/ 内容: yum remove mysql时出现移除perl-DBD-MySQL的情况原因排查: 根本原因是之前的CentOS6.X里默认安装了mysql-libs,而在CentOS的7.x里,先安装了自己制作的Mysql包,于是出现: 1)CentOS6.X里需要: rpm -q perl-DBD-MySQL --requires|grep libmysqlclient libmysqlclient.so.16()(64bit) libmysqlclient.so.16(libmysqlclient_16)(64bit) 2)CentOS7.X里需要: rpm -q perl-DBD-MySQL --requires|grep libmysqlclient libmysqlclient.so.18()(64bit) libmysqlclient.so.18(libmysqlclient_18)(64bit) 而这两个不同版本的MySQL自制的包均分别提供了libmysqlclient.so.16@CentOS6.X和libmysqlclient.so.18@CentOS7.X(7里叫:mariadb-libs),且加入到动态链接库的cat /etc/ld.so.conf.d/mysql.conf, /usr/local/mysql/lib,并ldconfig生效了,于是这个perl-DBD-MySQL就和它建立起了依赖,导致卸载Mysql@CentOS7.x时,因为perl-DBD-MySQL依赖mysql的libmysqlclient.so.18,于是出现被一同卸载的情况。怎么办@CentOS7.X里装perl-DBD-MySQL,先卸载Mysql一并把perl-DBD-MySQL卸载了,yum remove mysql -y,然后,yumdownloader mysql-libs,它会下载:mariadb-libs-5.5.56-2.el7.x86_64.rpm,rpm -ihv mariadb-libs-5.5.56-2.el7.x86_64.rpm,以解决直接yum install perl-DBD-MySQL时会出现安装:mysql-5.7.12-171123111505的情况,装好后,再安装yum install perl-DBD-MySQL ,也就不会安装mysql-5.7.12-171123111505了,因为链接已经在mariadb-libs-5.5.56有了,不需要mysql-5.7.12-171123111505来补充了。 一)CentOS7上安装perl-DBD-MySQL: [root@ha_mysql-mha_manager_bj_szq_10_70_36_177 ~]# yum remove mysql Loaded plugins: langpacks Resolving Dependencies --> Running transaction check ---> Package mysql.x86_64 0:5.7.12-171123111505.el7.centos will be erased --> Processing Dependency: libmysqlclient.so.18()(64bit) for package: perl-DBD-MySQL-4.023-5.el7.x86_64 --> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: perl-DBD-MySQL-4.023-5.el7.x86_64 --> Running transaction check ---> Package perl-DBD-MySQL.x86_64 0:4.023-5.el7 will be erased --> Finished Dependency Resolution libmysqlclient.so.18被perl-DBD-MySQL需要: ls -lart /usr/local/mysql/lib/libmysqlclient.so.18 /usr/local/mysql/lib/libmysqlclient.so.18 -> /usr/local/mysql/lib/libmysqlclient.so.18.1.0 rpm -qf /usr/local/mysql/lib/libmysqlclient.so.18.1.0 mysql-5.7.12-171123111505.el7.centos.x86_64 ldconfig -p|grep libmysqlclient.so.18 libmysqlclient.so.18 (libc6,x86-64) => /usr/local/mysql/lib/libmysqlclient.so.18 验证,如果没有咱自己打的包的情况,理论上perl-DBD-MySQL也是和CentOS6.x一样需要这个mysql-libs的: yumdownloader mysql-libs rpm -qpl mariadb-libs-5.5.56-2.el7.x86_64.rpm|grep libmysqlclient.so /usr/lib64/mysql/libmysqlclient.so.18 #得证!! /usr/lib64/mysql/libmysqlclient.so.18.0.0 二)CentOS6.x Ver: ldconfig -p|grep libmysqlclient.so libmysqlclient.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.16 rpm -qf /usr/lib64/mysql/libmysqlclient.so.16 mysql-libs-5.1.73-7.el6.x86_64 [root@ha_mysql-mha-manager_bj_sjs_10_71_182_246 ~]验证依赖: yum remove mysql-libs perl-DBD-MySQL x86_64 4.013-3.el6 @CentOS-Base Generated by Jackxiang's Bo-blog 2.1.1 Release