`
sharong
  • 浏览: 484890 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
D1667ae2-8cfc-3b68-ac7c-5e282789fa4a
论开源
浏览量:8449
7eb53364-fe48-371c-9623-887640be0185
Spring-data-j...
浏览量:12743
社区版块
存档分类
最新评论

安装最新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.service
Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.
# service mysqld status
Redirecting to /bin/systemctl status  mysqld.service
mysqld.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)

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

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

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

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

输入密码,成功登录mysql!
至此,在尝试了3种安装方法后,最终使用rpm文件成功安装了最新mysql community server 5.7.10版!
2
1
分享到:
评论
3 楼 weir2009 2015-12-30  
跟我的一样一样的   我是源码编译   一直不通过
2 楼 sharong 2015-12-19  
yezhi989 写道
遇到同样问题   改了权限还是启动不了

查看了日志信息 发现如下错误:

2015-12-15T05:58:29.591659Z 0 [ERROR] InnoDB: Operating system error number 13 in a file operation.
2015-12-15T05:58:29.591714Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.
2015-12-15T05:58:29.591727Z 0 [ERROR] InnoDB: os_file_get_status() failed on './ibdata1'. Can't determine file permissions
2015-12-15T05:58:29.591743Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2015-12-15T05:58:30.207228Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2015-12-15T05:58:30.207298Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2015-12-15T05:58:30.207311Z 0 [ERROR] Failed to initialize plugins.
2015-12-15T05:58:30.207318Z 0 [ERROR] Aborting

数据库文件的权限信息:
[root@localhost lib]# ll mysql
total 110628
-rw-r-----. 1 mysql mysql       56 Dec 15 13:56 auto.cnf
-rw-r-----. 1 mysql mysql      408 Dec 15 13:56 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Dec 15 13:56 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Dec 15 13:56 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Dec 15 13:56 ib_logfile1
drwxr-x---. 2 mysql mysql     4096 Dec 15 13:56 mysql
drwxr-x---. 2 mysql mysql     8192 Dec 15 13:56 performance_schema
drwxr-x---. 2 mysql mysql     8192 Dec 15 13:56 sys

谁知道怎么处理呢   求思路!

错误第二行显示是权限问题,是不是mysql账号创建有问题
1 楼 yezhi989 2015-12-15  
遇到同样问题   改了权限还是启动不了

查看了日志信息 发现如下错误:

2015-12-15T05:58:29.591659Z 0 [ERROR] InnoDB: Operating system error number 13 in a file operation.
2015-12-15T05:58:29.591714Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.
2015-12-15T05:58:29.591727Z 0 [ERROR] InnoDB: os_file_get_status() failed on './ibdata1'. Can't determine file permissions
2015-12-15T05:58:29.591743Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2015-12-15T05:58:30.207228Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2015-12-15T05:58:30.207298Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2015-12-15T05:58:30.207311Z 0 [ERROR] Failed to initialize plugins.
2015-12-15T05:58:30.207318Z 0 [ERROR] Aborting

数据库文件的权限信息:
[root@localhost lib]# ll mysql
total 110628
-rw-r-----. 1 mysql mysql       56 Dec 15 13:56 auto.cnf
-rw-r-----. 1 mysql mysql      408 Dec 15 13:56 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Dec 15 13:56 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Dec 15 13:56 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Dec 15 13:56 ib_logfile1
drwxr-x---. 2 mysql mysql     4096 Dec 15 13:56 mysql
drwxr-x---. 2 mysql mysql     8192 Dec 15 13:56 performance_schema
drwxr-x---. 2 mysql mysql     8192 Dec 15 13:56 sys

谁知道怎么处理呢   求思路!

相关推荐

Global site tag (gtag.js) - Google Analytics