CentOS7安装MySQL5.6遇到的问题怎么解决

网友投稿 781 2023-09-04

CentOS7安装MySQL5.6遇到的问题怎么解决

这篇文章主要介绍“CentOS7安装MySQL5.6遇到的问题怎么解决”,在日常操作中,相信很多人在CentOS7安装MySQL5.6遇到的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CentOS7安装MySQL5.6遇到的问题怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

CentOS7安装MySQL5.6遇到的问题怎么解决

在一测试服务器(centos linux release 7.2.1511)上安装mysql 5.6(5.6.19 mysql community server)时遇到下面错误,这个是因为centos 7的默认数据库已经不再是mysql了,而是mariadb. mysql安装时的mysql lib库与mariadb的库、包冲突了,如下详情所示(省略了大量日志)

[root@azrlnx06 tmp]# rpm -ivh mysql-server-advanced-5.6.20-1.rhel5.x86_64.rpm preparing... ################################# [100%] file /usr/share/mysql/czech/errmsg.sys from install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflictswith file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64 file /usr/share/mysql/danish/errmsg.sysfrom install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64 file /usr/share/mysql/dutch/errmsg.sys from install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64 file /usr/share/mysql/english/errmsg.sysfrom install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64 file /usr/share/mysql/estonian/errmsg.sys from install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64file /usr/share/mysql/french/errmsg.sys from install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflictswith file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64 file /usr/share/mysql/german/errmsg.sys from install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64 file /usr/share/mysql/greek/errmsg.sys from install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflictswith file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64 ........................................................................................................................................................................file /usr/share/mysql/charsets/macroman.xml from install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64 file /usr/share/mysql/charsets/swe7.xml from install of mysql-server-advanced-5.6.20-1.rhel5.x86_64 conflictswith file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64

检查是否存在mariadb的相关组件,然后删除mariadb相关组件。如下所示:

[root@azrlnx06 mysql]# more /etc/redhat-release  centos linux release 7.2.1511(core)  [root@azrlnx06 mysql]# rpm -qa |grep mariadb mariadb-libs-5.5.50-1.el7_2.x86_64 [root@azrlnx06 mysql]# rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64 errorfaileddependencies: libmysqlclient.so.18()(64bitis needed by (installed) postfix-2:2.10.1-6.el7.x86_64 libmysqlclient.so.18(libmysqlclient_18)(64bitis needed by (installed) postfix-2:2.10.1-6.el7.x86_64 [root@azrlnx06 mysql]# rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64 --nodeps

当然此处删除mariadb-libs-5.5.50-1.el7_2.x86_64组件时遇到依赖错误,遂强制删除该组件,最好使用yum删除mariadb相关组件。然后重新安装mysql时遇到"error: mysql-server-advanced-5.6.20-1.rhel5.x86_64: install failed"错误,如下所示:

[root@azrlnx06 mysql]# cd /tmp [root@azrlnx06 tmp]# lshsperfdata_azrlnx06 jirasetup mysql-server-advanced-5.6.20-1.rhel5.x86_64.rpm [root@azrlnx06 tmp]# rpm -ivh mysql-server-advanced-5.6.20-1.rhel5.x86_64.rpm preparing... ################################# [100%] updating / installing... 1:mysql-server-advanced-5.6.20-1.rh################################# [100%] error: unpacking of archive failed on file /usr/bin/innochecksum;582535c8: cpio: read failed -no such file or directory error: mysql-server-advanced-5.6.20-1.rhel5.x86_64: install failed [root@azrlnx06 tmp] clip_image001

对这个错误有点莫名其妙,卸载mysql相关组件后,重新安装mysql,发现缺少perl相关模组。如下所示:

[root@azrlnx06 jirasetup]# rpm -ivh mysql-server-advanced-5.6.20-1.rhel5.x86_64.rpm preparing...################################# [100%] updating / installing... 1:mysql-server-advanced-5.6.20-1.rh################################# [100%] fatal error: please install the following perl modules before executing /usr/bin/mysql_install_db: data::dumper [root@azrlnx06 jirasetup]#

使用yum安装了 perl perl-devel相关包(注意:此处安装mysql时,没有输出安装相关detail的信息,是因为perl相关模组没有安装的缘故,此处还漏掉了安装perl-data-dumper)

[root@azrlnx06 jirasetup]# yum install -y perl perl-devel

安装完perl相关组件后,重新安装mysql,如下所示,安装成功,但是没有输出安装相关detail的信息(因为没有安装perl-data-dumper),启动mysql报错

root@azrlnx06 jirasetup]# rpm -ivh mysql-server-advanced-5.6.20-1.rhel5.x86_64.rpm  preparing... ################################# [100%] updating / installing... 1:mysql-server-advanced-5.6.20-1.rh################################# [100%] [root@azrlnx06 jirasetup]# rpm -ivh mysql-client-advanced-5.6.20-1.rhel5.x86_64.rpm preparing... ################################# [100%] updating / installing... 1:mysql-client-advanced-5.6.20-1.rh################################# [100%] [root@azrlnx06 ~]# service mysql startstarting mysql............. error! the server quit without updating pid file (/var/lib/mysql/azrlnx06.pid). [root@azrlnx06 ~]#

找到mysql的错误日志,然后检查/var/lib/mysql/azrlnx06.err错误日志,发现如下错误信息:

[root@azrlnx06 mysql]# find / -name *.err /var/lib/mysql/azrlnx06.err /var/log/azure/microsoft.ostcextensions.linuxdiagnostic/2.3.9011/mdsd.err /var/log/azure/microsoft.ostcextensions.linuxdiagnostic/2.3.9013/mdsd.err /var/log/mdsd/mdsd.err [root@azrlnx06 mysql]# more /var/lib/mysql/azrlnx06.err 161111 03:28:25 mysqld_safe starting mysqld daemon with databases from /var/lib/mysql 2016-11-11 03:28:25 0 [warning] timestamp with implicit default value is deprecated. please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2016-11-11 03:28:25 2144 [note] plugin federated is disabled. /usr/sbin/mysqld: table mysql.plugin doesnt exist 2016-11-11 03:28:25 2144 [error] cant open the mysql.plugin table. please run mysql_upgrade to create it. 2016-11-11 03:28:25 2144 [note] innodb: using atomics to ref count buffer pool pages 2016-11-11 03:28:25 2144 [note] innodb: the innodb memory heap is disabled 2016-11-11 03:28:25 2144 [note] innodb: mutexes and rw_locks use gcc atomic builtins 2016-11-11 03:28:25 2144 [note] innodb: memory barrier is not used 2016-11-11 03:28:25 2144 [note] innodb: compressed tables use zlib 1.2.3 2016-11-11 03:28:25 2144 [note] innodb: using linux native aio 2016-11-11 03:28:25 2144 [note] innodb: using cpu crc32 instructions 2016-11-11 03:28:25 2144 [note] innodb: initializing buffer pool, size = 128.0m 2016-11-11 03:28:25 2144 [note] innodb: completed initialization of buffer pool 2016-11-11 03:28:25 2144 [note] innodb: the first specified data file ./ibdata1 did not exist: a new database to be created! 2016-11-11 03:28:25 2144 [note] innodb: setting file ./ibdata1 size to 12 mb 2016-11-11 03:28:25 2144 [note] innodb: database physically writes the file full: wait... 2016-11-11 03:28:26 2144 [note] innodb: setting log file ./ib_logfile101 size to 48 mb 2016-11-11 03:28:31 2144 [note] innodb: setting log file ./ib_logfile1 size to 48 mb 2016-11-11 03:28:37 2144 [note] innodb: renaming log file ./ib_logfile101 to ./ib_logfile0 2016-11-11 03:28:37 2144 [warning] innodb: new log files created, lsn=45781 2016-11-11 03:28:37 2144 [note] innodb: doublewrite buffer not found: creating new 2016-11-11 03:28:37 2144 [note] innodb: doublewrite buffer created 2016-11-11 03:28:37 2144 [note] innodb: 128 rollback segment(s) are active. 2016-11-11 03:28:37 2144 [warning] innodb: creating foreign key constraint system tables. 2016-11-11 03:28:37 2144 [note] innodb: foreign key constraint system tables created 2016-11-11 03:28:37 2144 [note] innodb: creating tablespace and datafile system tables. 2016-11-11 03:28:38 2144 [note] innodb: tablespace and datafile system tables created. 2016-11-11 03:28:38 2144 [note] innodb: waiting for purge to start 2016-11-11 03:28:38 2144 [note] innodb: 5.6.20 started; log sequence number 0 2016-11-11 03:28:38 2144 [warning] no existing uuid has been found, so we assume that this is the first time that this server has been started. generating a new uuid: ef3b0cd5-a7be-11e6-98b3-000d3a8062fe. 2016-11-11 03:28:38 2144 [note] rsa private key file not found: /var/lib/mysql//private_key.pem. some authentication plugins will not work. 2016-11-11 03:28:38 2144 [note] rsa public key file not found: /var/lib/mysql//public_key.pem. some authentication plugins will not work. 2016-11-11 03:28:38 2144 [note] server hostname (bind-address): *; port: 3306 2016-11-11 03:28:38 2144 [note] ipv6 is available. 2016-11-11 03:28:38 2144 [note] - :: resolves to ::; 2016-11-11 03:28:38 2144 [note] server socket created on ip: ::. 2016-11-11 03:28:38 2144 [error] fatal error: cant open and lock privilege tables: table mysql.user doesnt exist 161111 03:28:38 mysqld_safe mysqld from pid file /var/lib/mysql/azrlnx06.pid ended clip_image002

搜索了一些相关资料,应该是perl-data-dumper模组没有安装,导致安装过程中,初始化数据库失败,所以启动mysql服务时,找不到相关系统表。具体参考官方文档mysql-server rpm does not install perl-data-dumper as a dependency

description:

mysql-server requires perl-data-dumper to function. however, perl-data-dumper is not listed by the mysql-server rpm as a dependency. so if a linux server does not have perl-data-dumper installed, the install-mysql-db will fail. and because of missing the initial database, the mysql service could not be started.

how to repeat:

on a linux server, make sure there is no perl-data-dumper installed. install mysql-server using yum. there should be error message complaining database could not be created.

suggested fix:

add perl-data-dumper as a dependency of the rpm package

解决方法:

1:安装perl-data-dumper模组。

[root@azrlnx06 mysql]# yum install -y perl-data-dumper

2:初始化数据库

[root@azrlnx06mysql]# sudo mysql_install_db --user=mysql --basedir=/usr/ --ldata=/var/lib/mysql/ clip_image003[root@azrlnx06 mysql]# service mysql startstarting mysql. success!  [root@azrlnx06 mysql]# /usr//bin/mysqladmin -u root password qwe!23warning: using a passwordon the command line interface can be insecure.

当然也可以卸载mysql,然后重新安装,就能看到安装过程输出的detail信息输出了。

到此,关于“CentOS7安装MySQL5.6遇到的问题怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何在MySQL中替换字符串?| MySQL中替换字符串教程
下一篇:如何高效管理分布式数据库
相关文章