升级mysql版本,可以通过下载官网的安装软件来实现,也可以通过按照mysql的yum源安装实现。

首先介绍一下使用安装yum源的方法(操作系统是centos6.4 64位):

1、首先到官网 http://dev.mysql.com/downloads 找到对应的reposit安装源下载包,安装这个软件包之后,就可以找到mysql对应的软件版本了,我找到的yum安装源软件包地址如下:

http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm

 2、登录服务器,下载并按照这个yum源:

 wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm

 rpm -ivh mysql57-community-release-el6-8.noarch.rpm
    

3、查看可安装的mysql版本:
[root@host-172-10-2-83 software]# yum repolist all|grep mysql
mysql-connectors-community        MySQL Connectors Community      enabled:    21
mysql-connectors-community-source MySQL Connectors Community - So disabled
mysql-tools-community             MySQL Tools Community           enabled:    35
mysql-tools-community-source      MySQL Tools Community - Source  disabled
mysql-tools-preview               MySQL Tools Preview             disabled
mysql-tools-preview-source        MySQL Tools Preview - Source    disabled
mysql55-community                 MySQL 5.5 Community Server      disabled
mysql55-community-source          MySQL 5.5 Community Server - So disabled
mysql56-community                 MySQL 5.6 Community Server      disabled
mysql56-community-source          MySQL 5.6 Community Server - So disabled
mysql57-community                 MySQL 5.7 Community Server      enabled:    82
mysql57-community-source          MySQL 5.7 Community Server - So disabled



4、使用yum-config-manager命令启用或者禁用相应mysql的版本:

 yum-config-manager --disable mysql57-community
 yum-config-manager --enable mysql57-community

    例如,上面的命令分别是禁用额5.7版本,启用了5.7版本

5、直接使用yum install安装:

    yum install mysql-community-server -y


下面介绍第二种方法,就是下载安装文件的方法:


1.下载Linux的5.7版本

wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar

下载完成后,解压

2.备份数据库文件

mysqldump -uxxx -pxx databasename > databasename.sql

3.停止mysql服务

service mysqld stop

4.刚开始使用的yum安装的,使用以下语句进行卸载

yum remove mysql*

5.然后删除mysql旧版本已经存在的文件或者数据,不然mysql在重新安装后会出现各种纠结的问题。

find / -name mysql
ps -ef | grep -i mysql

rm -rf mysql****
kill -9 mysqlid

注意/usr/bin、/usr/share/、/var/lib下有很多mysql开头的文件,都删除掉,还有删除/etc目录下的my.cnf文件


6.如果你是rpm安装的,可以通过以下命令进行删除

rpm -qa | grep -i name
rpm -e mysqlxxxxx

7.卸载删除干净后,再使用以下命令对下载的server、client、devel、lib进行安装

yum localinstall mysql-community-common-5.7.11-1.el6.x86_64.rpm mysql-community-client-5.7.11-1.el6.x86_64.rpm mysql-community-server-5.7.11-1.el6.x86_64.rpm mysql-community-libs-5.7.11-1.el6.x86_64.rpm  mysql-community-devel-5.7.11-1.el6.x86_64.rpm

8.安装成功后,可能会出现以下问题,那么看看下面有没有你想要的

  1. mysql error 1524

  2. error 1045(28000)

  3. error 1820

  4. 使用mysql -uroot -proot登录不了

对应的方法为:

  1. 在my.cnf文件中的[mysql]下增加“skip-grant-tables”,然后重新启动mysql服务

  2. 在my.cnf文件中的[mysql]下将“user=mysql”注释掉

  3. 该问题需要设置一下用户的密码

    mysql> create database ttt;
    ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
    mysql> set password = password("root");
    Query OK, 0 rows affected (0.00 sec)
  4. mysql给你初始化了密码,在root目录下找.mysql_secret文件,注意文件隐藏形式,直接通过vim .mysql_secret就会关联到

    在我这里很奇怪,没有.mysql_secret 文件,因此只有使用下面的方法:

    先停止mysql服务:
    service mysqld stop
    使用--skip-grant-tables忽略密码启动:
    mysqld_safe --skip-grant-tables &

    更改密码: update mysql.user set authentication_string=password('mysql') where user='root' and Host = 'localhost';

    flush privileges;

       *特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了

    而是将加密后的用户密码存储于authentication_string字段

    杀死mysqld:   killall -TERM mysqld

    启动mysqld服务:  service mysqld start

    进入mysql,5.7版本在首次登录的时候它还是要求修改密码,因此执行下面的命令:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql_123';
    flush privileges;

    注意,更改后的密码也有复杂度要求,应该是需要字母、数字、符号的组合,并且是8位以上。