当前位置: 代码迷 >> MySQL >> 装配最新Mysql community server 5.7.10社区版的坑爹经历
  详细解决方案

装配最新Mysql community server 5.7.10社区版的坑爹经历

热度:407   发布时间:2016-05-05 16:32:46.0
安装最新Mysql community server 5.7.10社区版的坑爹经历
北京时间昨晚(2015-12-07)22点左右,mysql开发团队发布了最新的5.7.10版本,正好我这里也需要安装mysql,于是开始动作。
我的系统环境是centos7,64位系统,所以在http://dev.mysql.com/downloads/mysql/下载页面,可以选择Linux - Generic和Red Hat Enterprise Linux / Oracle Linux两个类别中的安装包。另外,还可以选择yum方式安装。下面逐一对安装时出现的各种状况进行说明。

1.首先来看选择Linux - Generic下载Linux Using Generic Binaries的tar.gz文件进行安装的情况。
官方安装说明文档的url如下:
http://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
在文档中部列出了大段shell命令来演示如何安装mysql,我按照文档中的描述,一直执行到
shell> chown -R mysql data mysql-files

这一步都没出现什么错误,满以为安装成功了,然而执行下面这句
shell>bin/mysqld_safe --user=mysql &

却显示mysql启动错误!错误log没有记录下来,搞了半天也不知道错误在哪里,没办法,只好放弃这种安装。

2.接着使用yum方式安装
这是相对来说最简单的安装方式了,官方安装说明文档的url如下:
http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
按照文档中所述,先下载并安装mysql最新的镜像源,然后执行
# yum install mysql-community-server

非常顺利的完成了安装,因为有了上次的经历,心里很担心服务启动不了,接着执行
# service mysqld start

果然出问题了,mysqld启动错误,出现下面的提示:
Redirecting to /bin/systemctl start  mysqld.serviceJob for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.# service mysqld statusRedirecting to /bin/systemctl status  mysqld.servicemysqld.service - MySQL Server   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled)   Active: failed (Result: start-limit) since Tue 2015-12-08 13:57:22 CST; 17s ago  Process: 31004 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=1/FAILURE)  Process: 30988 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Failed to start MySQL Server.Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Unit mysqld.service entered failed state.Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: mysqld.service holdoff time over, scheduling restart.Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Stopping MySQL Server...Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Starting MySQL Server...Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: mysqld.service start request repeated too quickly, refusing to start.Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Failed to start MySQL Server.Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Unit mysqld.service entered failed state.

google了好半天,发现这篇文档
http://stackoverflow.com/questions/31813552/linux-antergos-install-mysql
安装完应该先检查一下/var/lib/mysql目录下的文件权限,执行
chown mysql:mysql -R /var/lib/mysql

然后重新启动mysql服务
# service mysqld start

这次果然成功启动mysql服务了!高兴之余,继续按安装文档的说明,执行
# grep 'temporary password' /var/log/mysqld.log

执行这条命令居然什么都没显示,没有查找到初始临时密码!
这是肿么回事?只有继续google,找到下面这篇文档
http://mirror.metrocast.net/mysql/doc/refman/5.1/zh/problems.html#resetting-permissions
文中提到如何复位根用户密码,于是按照文档说明开始执行,然而,执行到这句
shell> mysqld_safe --init-file=~/mysql-init &

才发现yum安装的mysql 5.7.10社区版居然没有mysqld_safe这个文件!
为什么我使用yum方式安装mysql,没有生成临时密码,恳请读了此文的数据库大牛给释疑一下。

顿时感觉陷入了困境,一筹莫展,万般无奈之下,只好用最后的办法试一下。


3.使用rpm文件安装mysql
首先在http://dev.mysql.com/downloads/mysql/,选择Red Hat Enterprise Linux / Oracle Linux下载了519M的Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle 5.7.10,文件名是mysql-5.7.10-1.el7.x86_64.rpm-bundle.tar
解压之,出现了12个rpm文件,然后参考下面的url:
http://www.cnblogs.com/5201351/p/4912614.html
(这篇是5.7.9的说明文档,我安装的是5.7.10版,最后的小版本号不一致)
文中说明,只需要安装如下4个软件包即可,我们可以使用rpm -ivh命令进行安装
     mysql-community-common-5.7.9-1.el7.x86_64.rpm     mysql-community-libs-5.7.9-1.el7.x86_64.rpm             --(依赖于common)     mysql-community-client-5.7.9-1.el7.x86_64.rpm          --(依赖于libs)     mysql-community-server-5.7.9-1.el7.x86_64.rpm         --(依赖于client、common)

初始化数据库,我们使用如下几条命令均可,效果都是一样的
[[email protected] ~]# mysql_install_db --datadir=/var/lib/mysql   //必须指定datadir,执行后会生成~/.mysql_secret密码文件[[email protected] ~]# mysqld --initialize                         //新版的推荐此方法,执行后会在/var/log/mysqld.log生成随机密码

注意,按文档的意思,似乎是上面两条命令执行一条就可以了。我在执行第二条命令的时候,出现了error错误,遂没管这个错误,直接进入下一步。
datadir=/var/lib/mysql是数据库文件的放置路径。

更改mysql数据库目录的所属用户及其所属组,然后启动mysql数据库
[[email protected] ~]# chown mysql:mysql /var/lib/mysql -R[[email protected] ~]# systemctl start mysqld.service            //启动mysql数据库服务

mysql这时候顺利的启动起来了!又是一阵狂喜,赶紧到/root目录下寻找.mysql_secret文件。迫不及待的打开,看到了一个生成的临时密码。执行
# mysql -uroot -p

输入密码,成功登录mysql!
至此,在尝试了3种安装方法后,最终使用rpm文件成功安装了最新mysql community server 5.7.10版!
  相关解决方案