【第22期】观点:IT 行业加班,到底有没有价值?

阿里云CentOS7下mysql5.6安装问题总结

原创 2016年08月30日 18:42:39

最近购买了一个阿里云的ESC,操作系统是CentOS7,小项目,不想多花钱再买一个云数据库,所以直接在这个服务器上安装mysql。由于之前我都是自己下载安装RedHat Enterprise版本的系统,服务器上的各种软件也都是自己下载安装的,本以为可以很顺利的安装完成,毕竟CentOS跟Redhat非常接近。但不曾想到碰到了一堆问题。特别别对于mysql的安装更是耗费了我一天的时间,真是被坑的不清。网上也有很多linux安装mysql的问题,但很多文章的解决方法都是相似,而且不能解决问题,经过思考摸索,查看mysql官方文档,我找到了一些更简单的方法,实践操作有效。

软件环境:CentOS7, mysql 5.6.32。

从官网下载mysql rpm包,解压安装,安装过程中出错,报与mariadb文件冲突。不同于Redhat操作系统,CentOS默认安装的是mariadb数据库,需先将其卸载,再进行安装。

安装完成后,运行servcie mysql start命令启动mysql但启动失败。这个问题是整个安装过程最麻烦的一个问题。问题的解决过程如下:

首先根据报错Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/iZ237ajgbr6Z.pid).,查看/var/lib/mysql/xxxxx.pid文件,实际生成的是/var/lib/mysql/xxxxx.err文件。文件中关键报错信息:can't open the mysql plugin table,以及table 'mysql.user' doesn't exist。到mysql的数据目录中查看,确实没有任何msyql自带的数据库。根据阿里云以及网上的文章,这是因为mysql的数据库没有初始化,需执行mysql_install_db可执行文件初始化数据库(在我的系统环境下该可执行文件在/usr/bin/文件夹里,而网上的是在mysql/scripts下,所以不同的环境、软件安装包,mysql的一些执行文件路径可能会不一样)。初始化数据库并且制定datadir和basedir语句如下:

#./mysql_install_db  --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --tmpdir=/tmp

按照此语法我却执行失败。在网上寻找解决其他方法,并且尝试更换rpm包,都无果。遂查看mysql官方文档,看是否因为mysql版本不同,安装方式也有所不同。然而对于rpm包的安装,就只有那么简单的几条命令。重新思考mysql报错的原因,我把问题锁定在mysql未初始化数据库上,并查看mysql_install_db的使用方法,结果发现一个重要的信息

此文档中说了三个点很重要:

  1. mysql_install_db用于初始化MySQL数据目录和创建系统表的。
  2. 该执行文件是一个Perl脚本文件。
  3.  在mysql 5.6.8之前它是一个shell脚本文件。

看到Perl这个字眼的时候我突然想起,在先前的安装过程中,确实有缺少Perl Module的报错,但我运行yum install安装Perl,安装过程中也报错了,我再运行rpm查看Perl是否安装时,看到有许多Perl的程序安装了,于是抱着试试想法,在此安装mysql,结果显示Complete,但却无法启动mysql。于是我回头看了下mysql的安装结果信息,发现了一个重要的报错被我忽视了:FATAL ERROR: please install the following Perl modules before executing /usr/bin/mysql_install_db。错误明确提示了要在运行mysql_install_db前安装Perl Modules。然后,我看了下我之前顺利安装mysql的服务器,Redhat已经给我默认安装了Perl,而阿里云的CentOS并没有安装,这也就是为什么我之前没有碰到此问题的原因。我猜测只要安装了Perl modules,mysql其实是会自动执行mysql_install_db初始化数据库的,根本不需要我人为去执行那麻烦的初始化语句。

根据猜测,我先安装了Perl Modules。先用yum list查找module:#yum list | grep -i perl-module*。然后安装perl-module:# yum install -y perl-Module-Install.noarch

之后把mysql卸载,再重新安装。成功,并且可以启动mysql服务。

最后使用mysql命令连接数据库,提示出错,无mysql命令,因为未安装mysql-client客户端,导致无法连接数据库,安装后问题解决。

吸取今天问题的教训,总结如下几点:

1、mysql安装完成后的Complete!提示,不代表就真的安装成功了,要看看整个安装过程是否有报错,如FATAL_ERROR.

2、对于一些报错的解决,还是要多参考官方文档,这会比单纯的百度解决问题要更好更快。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

阿里云Centos7使用yum安装MySQL5.6的正确姿势

前言:由于某些不可抗力,我要在自己的阿里云服务器上搭建hadoop+hive+mysql+tomcat环境,下为mysql的安装记录 →_→大家都知道,centos自带的repo是不会自动更新每个...

阿里云ubuntu 上安装mysql

今天在阿里云买了一个服务器,阿里云的服务器以稳定著称,今天去买一个月测试一下。 由于准备是用来做web服务器,所以需要安装数据库,这里我采用了mysql。安装成功后,下边我来写下mysql的安装过程。 1,如何安装mysql ? <p
  • mmdev
  • mmdev
  • 2012-08-05 18:13
  • 567

欢迎关注CSDN程序人生公众号

关注程序员生活,汇聚开发轶事。

阿里云Centos7使用yum安装MySQL5.6

阿里云Centos7使用yum安装MySQL5.6,阿里云yum安装MySQL5.6

阿里云linux主机自己安装的mysql5.6.10,用phpmyadmin访问不成功

   最近租用了阿里云的linux12.04 64位服务器,推荐一下注册地址:阿里云主机注册    安装好了mysql5.6.10之后,在服务器访问mysql一切都正常    但是当用phpmyadmin去访问时,却无

支持PHP7的LNMP、LAMP一键安装详细教程,教你快速的建好一个网站

这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux、Nginx/Tengine、MySQL/MariaDB/Percona、PHP),适用于CentOS ...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)