Centos MySQL 5.7 安装、升级详细教程

前端之家收集整理的这篇文章主要介绍了Centos MySQL 5.7 安装、升级详细教程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

卸载当前的 MysqL

查看当前 MysqL 版本:
[root@coderknock ~]# MysqL -V
MysqL  Ver 14.14 Distrib 5.1.73,for redhat-linux-gnu (i386) using readline 5.1
停止 MysqL 服务
[root@coderknock ~]# service MysqLd stop
Stopping MysqLd:                                           [  OK  ]
备份数据【数据不重要可以忽略】

备份数据库升级MysqL通常不会丢失数据,但保险起见,我们需要做这一步。输入命令:

[root@coderknock ~]# MysqLdump -u xxx -h xxx -P 3306 -p --all-databases > databases.sql
卸载旧版本 MysqL
[root@coderknock ~]# yum remove MysqL MysqL-*
Loaded plugins: security
Setting up Remove Process
Resolving Dependencies
--> Running transaction check ---> Package MysqL.i686 0:5.1.73-7.el6 will be erased ---> Package MysqL-libs.i686 0:5.1.73-7.el6 will be erased --> Processing Dependency: libMysqLclient.so.16 for package: 2:postfix-2.6.6-6.el6_7.1.i686 --> Processing Dependency: libMysqLclient.so.16 for package: perl-DBD-MysqL-4.013-3.el6.i686 --> Processing Dependency: libMysqLclient.so.16(libMysqLclient_16) for package: 2:postfix-2.6.6-6.el6_7.1.i686 --> Processing Dependency: libMysqLclient.so.16(libMysqLclient_16) for package: perl-DBD-MysqL-4.013-3.el6.i686 --> Processing Dependency: MysqL-libs for package: 2:postfix-2.6.6-6.el6_7.1.i686 ---> Package MysqL-server.i686 0:5.1.73-7.el6 will be erased --> Running transaction check ---> Package perl-DBD-MysqL.i686 0:4.013-3.el6 will be erased ---> Package postfix.i686 2:2.6.6-6.el6_7.1 will be erased --> Processing Dependency: /usr/sbin/sendmail for package: cronie-1.4.4-16.el6_8.2.i686 --> Processing Dependency: /usr/sbin/sendmail for package: redhat-lsb-core-4.0-7.el6.centos.i686 --> Running transaction check ---> Package cronie.i686 0:1.4.4-16.el6_8.2 will be erased --> Processing Dependency: cronie = 1.4.4-16.el6_8.2 for package: cronie-anacron-1.4.4-16.el6_8.2.i686 ---> Package redhat-lsb-core.i686 0:4.0-7.el6.centos will be erased --> Running transaction check ---> Package cronie-anacron.i686 0:1.4.4-16.el6_8.2 will be erased --> Processing Dependency: /etc/cron.d for package: crontabs-1.10-33.el6.noarch --> Processing Dependency: /etc/cron.d for package: sysstat-9.0.4-31.el6.i686 --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package crontabs.noarch 0:1.10-33.el6 will be erased ---> Package sysstat.i686 0:9.0.4-31.el6 will be erased --> Finished Dependency Resolution 
Dependencies Resolved

=======================================================================================================================================================================================================  Package                                     Arch                               Version                                       Repository                                                          Size
======================================================================================================================================================================================================= Removing:
 MysqL                                       i686                               5.1.73-7.el6                                  @base                                                              2.3 M
 MysqL-libs                                  i686                               5.1.73-7.el6                                  @base                                                              3.9 M
 MysqL-server                                i686                               5.1.73-7.el6                                  @base                                                               24 M
Removing for dependencies:
 cronie                                      i686                               1.4.4-16.el6_8.2                              @updates                                                           169 k
 cronie-anacron                              i686                               1.4.4-16.el6_8.2                              @updates                                                            38 k
 crontabs                                    noarch                             1.10-33.el6                                   @anaconda-CentOS-201311291201.i386/6.5                             2.4 k
 perl-DBD-MysqL                              i686                               4.013-3.el6                                   @base                                                              341 k
 postfix                                     i686                               2:2.6.6-6.el6_7.1                             @base                                                              9.3 M
 redhat-lsb-core                             i686                               4.0-7.el6.centos                              @anaconda-CentOS-201311291201.i386/6.5                              22 k
 sysstat                                     i686                               9.0.4-31.el6                                  @base                                                              804 k

Transaction Summary
======================================================================================================================================================================================================= Remove       10 Package(s)

Installed size: 41 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : MysqL-server-5.1.73-7.el6.i686                                                                                                                                                     1/10 
warning: /var/log/MysqLd.log saved as /var/log/MysqLd.log.rpmsave
  Erasing    : redhat-lsb-core-4.0-7.el6.centos.i686                                                                                                                                              2/10 
/var/tmp/rpm-tmp.Y5QGjy: line 1: lsb_release: command not found
  Erasing    : MysqL-5.1.73-7.el6.i686                                                                                                                                                            3/10 
  Erasing    : perl-DBD-MysqL-4.013-3.el6.i686                                                                                                                                                    4/10 
  Erasing    : sysstat-9.0.4-31.el6.i686                                                                                                                                                          5/10 
  Erasing    : crontabs-1.10-33.el6.noarch                                                                                                                                                        6/10 
  Erasing    : cronie-anacron-1.4.4-16.el6_8.2.i686                                                                                                                                               7/10 
  Erasing    : cronie-1.4.4-16.el6_8.2.i686                                                                                                                                                       8/10 
  Erasing    : 2:postfix-2.6.6-6.el6_7.1.i686                                                                                                                                                     9/10 
  Erasing    : MysqL-libs-5.1.73-7.el6.i686                                                                                                                                                      10/10 
  Verifying  : redhat-lsb-core-4.0-7.el6.centos.i686                                                                                                                                              1/10 
  Verifying  : perl-DBD-MysqL-4.013-3.el6.i686                                                                                                                                                    2/10 
  Verifying  : MysqL-server-5.1.73-7.el6.i686                                                                                                                                                     3/10 
  Verifying  : crontabs-1.10-33.el6.noarch                                                                                                                                                        4/10 
  Verifying  : sysstat-9.0.4-31.el6.i686                                                                                                                                                          5/10 
  Verifying  : cronie-anacron-1.4.4-16.el6_8.2.i686                                                                                                                                               6/10 
  Verifying  : cronie-1.4.4-16.el6_8.2.i686                                                                                                                                                       7/10 
  Verifying  : MysqL-libs-5.1.73-7.el6.i686                                                                                                                                                       8/10 
  Verifying  : MysqL-5.1.73-7.el6.i686                                                                                                                                                            9/10 
  Verifying  : 2:postfix-2.6.6-6.el6_7.1.i686                                                                                                                                                    10/10 

Removed:
  MysqL.i686 0:5.1.73-7.el6                                     MysqL-libs.i686 0:5.1.73-7.el6                                     MysqL-server.i686 0:5.1.73-7.el6                                    

Dependency Removed:
  cronie.i686 0:1.4.4-16.el6_8.2              cronie-anacron.i686 0:1.4.4-16.el6_8.2     crontabs.noarch 0:1.10-33.el6     perl-DBD-MysqL.i686 0:4.013-3.el6     postfix.i686 2:2.6.6-6.el6_7.1    
  redhat-lsb-core.i686 0:4.0-7.el6.centos     sysstat.i686 0:9.0.4-31.el6               

Complete!

这样就卸载完成了,为了保险起见我们检查一下系统中是否还有 MysqL 相关内容没有删除干净

[root@coderknock ~]# yum list installed | grep MysqL
[root@coderknock ~]# 

上面的情况是没有未删除部分,如果有的话可通过下面的命令删除

[root@coderknock ~]# yum remove MysqL-libs

下载最新版本的 MysqL

查看系统配置信息选择对应 MysqL
[root@coderknock ~]# uname -r 
3.10.104-1.el6.elrepo.i686

在浏览器打开 sohu提供的 MySQL 镜像(官网速度太慢)


然后根据自己系统配置选择对应的 rpm 包,右键复制文件链接,我的选择如下:

下载并解压
[root@coderknock ~]# wget http://mirrors.sohu.com/MysqL/MysqL-5.7/MysqL-5.7.17-1.el6.i686.rpm-bundle.tar
--2017-01-06 22:46:15--  http://mirrors.sohu.com/MysqL/MysqL-5.7/MysqL-5.7.17-1.el6.i686.rpm-bundle.tar
Resolving mirrors.sohu.com... 119.188.36.70
Connecting to mirrors.sohu.com|119.188.36.70|:80... connected.
HTTP request sent,awaiting response... 200 OK
Length: 448163840 (427M) [application/octet-stream]
Saving to: “MysqL-5.7.17-1.el6.i686.rpm-bundle.tar100%[=============================================================================================================================================================>] 448,163,840 9.98M/s   in 45s     

2017-01-06 22:47:00 (9.54 MB/s) - “MysqL-5.7.17-1.el6.i686.rpm-bundle.tar” saved [448163840/448163840]
[root@coderknock ~]# tar xvf MysqL-5.7.17-1.el6.i686.rpm-bundle.tar 
MysqL-community-libs-compat-5.7.17-1.el6.i686.rpm
MysqL-community-client-5.7.17-1.el6.i686.rpm
MysqL-community-embedded-devel-5.7.17-1.el6.i686.rpm
MysqL-community-devel-5.7.17-1.el6.i686.rpm
MysqL-community-common-5.7.17-1.el6.i686.rpm
MysqL-community-test-5.7.17-1.el6.i686.rpm
MysqL-community-embedded-5.7.17-1.el6.i686.rpm
MysqL-community-libs-5.7.17-1.el6.i686.rpm
MysqL-community-server-5.7.17-1.el6.i686.rpm

安装及配置

安装 rpm 【有依赖关系,请按下面的步骤安装,搜索 [root@coderknock ~]# 可跳过安装日志直接查看相关命令】
[root@coderknock ~]# yum localinstall MysqL-community-common-5.7.17-1.el6.i686.rpm 
Loaded plugins: security
Setting up Local Package Process
Examining MysqL-community-common-5.7.17-1.el6.i686.rpm: MysqL-community-common-5.7.17-1.el6.i686
Marking MysqL-community-common-5.7.17-1.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package MysqL-community-common.i686 0:5.7.17-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================================================================================
 Package                                           Arch                            Version                                  Repository                                                            Size
=======================================================================================================================================================================================================
Installing:
 MysqL-community-common i686 5.7.17-1.el6 /MysqL-community-common-5.7.17-1.el6.i686 2.5 M

Transaction Summary =======================================================================================================================================================================================================
Install       1 Package(s)

Total size: 2.5 M
Installed size: 2.5 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing : MysqL-community-common-5.7.17-1.el6.i686 1/1 
 Verifying : MysqL-community-common-5.7.17-1.el6.i686 1/1 

Installed:
 MysqL-community-common.i686 0:5.7.17-1.el6 

Complete!
[root@coderknock ~]# yum localinstall MysqL-community-libs-5.7.17-1.el6.i686.rpm 
Loaded plugins: security
Setting up Local Package Process
Examining MysqL-community-libs-5.7.17-1.el6.i686.rpm: MysqL-community-libs-5.7.17-1.el6.i686
Marking MysqL-community-libs-5.7.17-1.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package MysqL-community-libs.i686 0:5.7.17-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================================================================================
 Package                                          Arch                             Version                                   Repository                                                           Size
=======================================================================================================================================================================================================
Installing:
 MysqL-community-libs i686 5.7.17-1.el6 /MysqL-community-libs-5.7.17-1.el6.i686 7.8 M

Transaction Summary =======================================================================================================================================================================================================
Install       1 Package(s)

Total size: 7.8 M
Installed size: 7.8 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing : MysqL-community-libs-5.7.17-1.el6.i686 1/1 
 Verifying : MysqL-community-libs-5.7.17-1.el6.i686 1/1 

Installed:
 MysqL-community-libs.i686 0:5.7.17-1.el6 

Complete!
[root@coderknock ~]# yum localinstall MysqL-community-client-5.7.17-1.el6.i686.rpm 
Loaded plugins: security
Setting up Local Package Process
Examining MysqL-community-client-5.7.17-1.el6.i686.rpm: MysqL-community-client-5.7.17-1.el6.i686
Marking MysqL-community-client-5.7.17-1.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package MysqL-community-client.i686 0:5.7.17-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================================================================================
 Package                                           Arch                            Version                                  Repository                                                            Size
=======================================================================================================================================================================================================
Installing:
 MysqL-community-client i686 5.7.17-1.el6 /MysqL-community-client-5.7.17-1.el6.i686 87 M

Transaction Summary =======================================================================================================================================================================================================
Install       1 Package(s)

Total size: 87 M
Installed size: 87 M
Is this ok [y/N]: ^[[A^Hy
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing : MysqL-community-client-5.7.17-1.el6.i686 1/1 
 Verifying : MysqL-community-client-5.7.17-1.el6.i686 1/1 

Installed:
 MysqL-community-client.i686 0:5.7.17-1.el6 

Complete!
[root@coderknock ~]# yum localinstall MysqL-community-server-5.7.17-1.el6.i686.rpm 
Loaded plugins: security
Setting up Local Package Process
Examining MysqL-community-server-5.7.17-1.el6.i686.rpm: MysqL-community-server-5.7.17-1.el6.i686
Marking MysqL-community-server-5.7.17-1.el6.i686.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package MysqL-community-server.i686 0:5.7.17-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================================================================================
 Package                                           Arch                            Version                                  Repository                                                            Size
=======================================================================================================================================================================================================
Installing:
 MysqL-community-server i686 5.7.17-1.el6 /MysqL-community-server-5.7.17-1.el6.i686 695 M

Transaction Summary =======================================================================================================================================================================================================
Install       1 Package(s)

Total size: 695 M
Installed size: 695 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing : MysqL-community-server-5.7.17-1.el6.i686 1/1 
 Verifying : MysqL-community-server-5.7.17-1.el6.i686 1/1 

Installed:
 MysqL-community-server.i686 0:5.7.17-1.el6 

Complete!
配置

查看版本

[root@coderknock ~]# MysqL -V
MysqL  Ver 14.14 Distrib 5.7.17,for Linux (i686) using  EditLine wrapper

启动 MysqL

[root@coderknock ~]# service MysqLd start MysqL Daemon Failed to start. Starting MysqLd: [Failed]

上面的情况说明启动失败,这是因为经过上面的步骤,MysqL 最新版已经安装到我们的系统了,但这是还没有初始化数据,所以导致无法启动。

初始化数据库

[root@coderknock ~]# MysqLd --initialize

如果遇到错误如下:

2017-01-06T14:53:08.889803Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-01-06T14:53:08.892190Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2017-01-06T14:53:08.892475Z 0 [ERROR] Aborting

可以运行以下命令【无需再执行 MysqLd --initialize】:

[root@coderknock ~]# rm -rf /var/lib/MysqL
[root@coderknock ~]# service MysqLd start
Initializing MysqL database:                         [  OK  ]
Installing validate password plugin:                       [  OK  ]
Starting MysqLd:                                           [  OK  ]

这样我们就启动了 MysqL 服务

MysqL 无法登陆解决办法

登录时我遇到了一些问题:

[root@coderknock ~]# MysqL -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

这是因较新版本的 MysqL 因为安全的考虑,会设置默认密码

[root@coderknock ~]# grep 'temporary password' /var/log/MysqLd.log
2017-01-06T14:53:33.490540Z 1 [Note] A temporary password is generated for root@localhost: Ei(GLix_p6/1

这样就找到了密码,如果上面方法不可行可以看看是否有 /root/.MysqL_secret 文件

或者通过以下方法直接修改密码

[root@coderknock ~]# service MysqLd stop
Stopping MysqLd:                                           [  OK  ]
[root@coderknock ~]# MysqLd_safe --user=MysqL --skip-grant-tables --skip-networking &
[1] 14208
[root@coderknock ~]# 2017-01-06T15:02:18.663496Z MysqLd_safe Logging to '/var/log/MysqLd.log'.
2017-01-06T15:02:18.666764Z MysqLd_safe Logging to '/var/log/MysqLd.log'.
2017-01-06T15:02:18.693025Z MysqLd_safe Starting MysqLd daemon with databases from /var/lib/MysqL
^C
[root@coderknock ~]# MysqL -u root MysqL
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MysqL monitor.  Commands end with ; or \g.
Your MysqL connection id is 3
Server version: 5.7.17 MysqL Community Server (GPL)

Copyright (c) 2000,2016,Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MysqL>update MysqL.user set authentication_string=password('你的密码.') where User='root';
Query OK,1 row affected,1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1
MysqL> flush privileges;
MysqL> update MysqL.user set Host='%' where User='root'
Query OK,1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1
MysqL> flush privileges;

注意sql在Linux下要注意大小写,执行之后Query OK,1 row affected,1 warning (0.00 sec),row 之前是1才代表执行成功了。update MysqL.user set Host='%' where User='root' 这句是为了别的 IP 的机器也可以登录我们的MysqL,可以按需执行

重置密码

无论是获取到了默认密码还是强行修改了密码。新版 MysqL 在第一次通过密码登录后会无法执行sql

MysqL> select host from MysqL.user where User='root';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

这是因为 MysqL 为了安全会要求修改初始密码。

MysqL> ALTER USER 'root'@'%' IDENTIFIED BY '你的密码';

如果遇到ERROR 1819 (HY000): Your password does not satisfy the current policy requirements说明你的密码太简单,需要设置复杂点的密码,有大小写字母、有数字、有标点基本上就可以通过。
注意,如果你没有修改过 root 用户的Host或者修改为非 % 的字符,需要对上面的语句进行对应的修改,例如: ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘你的密码’

如果遇到ERROR 1290 (HY000): The MysqL server is running with the --skip-grant-tables option so it cannot execute this statement 则需要退出安全模式,正常启动MysqL后登陆再进行以上操作:

MysqL> quit
[root@coderknock ~]# ps -ef|grep MysqL
root     14208 12686  0 23:02 pts/0    00:00:00 /bin/sh /usr/bin/MysqLd_safe --user=MysqL --skip-grant-tables --skip-networking
MysqL    14381 14208  0 23:02 pts/0    00:00:00 /usr/sbin/MysqLd --basedir=/usr --datadir=/var/lib/MysqL --plugin-dir=/usr/lib/MysqL/plugin --user=MysqL --skip-grant-tables --skip-networking --log-error=/var/log/MysqLd.log --pid-file=/var/run/MysqLd/MysqLd.pid --socket=/var/lib/MysqL/MysqL.sock
root     15148 12686  0 23:23 pts/0    00:00:00 grep MysqL
[root@coderknock ~]# kill -9 114208
-bash: kill: (114208) - No such process
[root@coderknock ~]# kill -9 14208
[1]+  Killed                  MysqLd_safe --user=MysqL --skip-grant-tables --skip-networking
[root@coderknock ~]# kill -9 1438
[root@coderknock ~]# service MysqLd start
[root@coderknock ~]# MysqL -u root MysqL

如有问题可以留下你的评论,或加入 拿客 中的qq群咨询。

猜你在找的CentOS相关文章