centos下升级mysql5.5.47到5.7.14操作过程

前端之家收集整理的这篇文章主要介绍了centos下升级mysql5.5.47到5.7.14操作过程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一. 查看已安装MysqL基础信息
通过MysqL –V 查看下MysqL版本
可以通过命令find / -name MysqL 得到下面信息

1、安装目录
[root@jjxnhd-192-10 MysqL]# /var/lib/MysqL
2、配置文件
[root@jjxnhd-192-10 MysqL]# /usr/share/MysqL
3、相关命令
[root@jjxnhd-192-10 MysqL]# /usr/bin (MysqLadmin MysqLdump等命令)
4、启动脚本
[root@jjxnhd-192-10 MysqL]# /etc/init.d/MysqL
MysqL启动,重启,停止命令如下:
/etc/init.d/MysqLd start
/etc/init.d/MysqLd restart
/etc/init.d/MysqLd stop
备份MysqL相关数据,配置
(1).备份数据库,可以将MysqL数据库分开备份
通过 MysqL –uroot –p 上去

备份重要数据库
[root@jjxnhd-192-10 MysqL]# cd /opt/szw
[root@jjxnhd-192-10 MysqL]# MysqLdump -u root -p hive > hive.sql
[root@jjxnhd-192-10 MysqL]# MysqLdump -u root -p oozie > oozie.sql

(2).备份MysqL 数据目录,更多备份,更多安全
[root@jjxnhd-192-10 MysqL]# cp -R /var/lib/MysqL/ MysqLdata

(3).备份MysqL 配置文件
[root@jjxnhd-192-10 MysqL]# cp /etc/my.cnf MysqLconf

三.升级MysqL(注意:所有对文件修改修改之前都要进行备份)

1、下载通用安装二进制包

先下载MysqL安装包:打开 http://dev.mysql.com/download...
选择 linux - Generic并在其下选择
Linux - Generic (glibc 2.5) (x86,64-bit),Compressed TAR Archive
进行下载。可以先下载到一个临时目录里,解压后,得到两个包:
MysqL-5.7.11-linux-glibc2.5-x86_64.tar.gz
MysqL-test-5.7.11-linux-glibc2.5-x86_64.tar.gz
只需要MysqL-5.7.11-linux-glibc2.5-x86_64.tar.gz 这个包就行了。

2、建立用户和目录

建立用户MysqL,组MysqL。后面MysqL就使用这个用户来运行(注意这也是MysqL启动脚本中默认的用户,因此最好不要改名)。
groupadd MysqL
useradd -r -g MysqL MysqL
(使用-r参数表示MysqL用户是一个系统用户,不能登录
建立目录/work/program,后面MysqL就安装在这个目录下面。
mkdir -p /work/program

3、安装

【解压】
将前面得到的MysqL-5.7.11-linux-glibc2.5-x86_64.tar.gz解压至/work/program目录下
tar zxvf MysqL-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /work/program

这时在program下得到的目录名很长,如果不想改名,则可以建立一个联接:
ln -s MysqL-5.7.11-linux-glibc2.5-x86_64 MysqL
此后就可以用/work/program/MysqL来找到MysqL的安装目录了

注意,如果MysqL目录下没有data目录,手动建一个。

【目录权限设置】
MysqL及其下所有的目录所有者和组均设为MysqL:
cd /work/program/MysqL
chown MysqL:MysqL -R .

【初始化】
/work/program/MysqL/bin/MysqLd --initialize --user=MysqL --datadir=/work/program/MysqL/data --basedir=/work/program/MysqL

初始化成功后出现如下信息:
201x-xx-xxT07:10:13.583130Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
201x-xx-xx T07:10:13.976219Z 0 [Warning] InnoDB: New log files created,LSN=45790
201x-xx-xx T07:10:14.085666Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
201x-xx-xx T07:10:14.161899Z 0 [Warning] No existing UUID has been found,so we assume that this is the first time that this server has been started. Generating a new UUID: 1fa941f9-effd-11e5-b67d-000c2958cdc8.
201x-xx-xx T07:10:14.165534Z 0 [Warning] Gtid table is not ready to be used. Table 'MysqL.gtid_executed' cannot be opened.
201x-xx-xx T07:10:14.168555Z 1 [Note] A temporary password is generated for root@localhost: q1SLew5T_6K,

注意最后一行,这也是和之有版本不同的地方,它给了root一个初始密码,后面要登录的时候要用到这个密码。

【配置】
MysqL/support-files下的my-default.cnf改名为my.cnf,拷到/etc下
cp /work/program/MysqL/support-files/my-default.cnf /etc/my.cnf
my.cnf中关键配置:
[MysqLd]
basedir = /work/program/MysqL
datadir = /work/program/MysqL/data
port = 3306
socket = /work/program/MysqL/tmp/MysqL.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

注意,tmp目录不存在,请创建之。

如果不把my.cnf拷到/etc下,运行时会出现:
MysqLd: Can't change dir to '/usr/local/MysqL/data/' (Errcode: 2 - No such file or directory)
这样的出错提示,说明它没找到my.cnf中的配置;而去找了程序编译时的默认安装位置:/usr/local/MysqL

4、设置MysqL以服务运行并且开机启动

将/work/program/MysqL/ support-files/MysqL.server 拷贝为/etc/init.d/MysqL并设置运行权限

cp MysqL.server /etc/init.d/MysqL
chmod +x /etc/init.d/MysqL

MysqL注册为开机启动的服务

chkconfig --add MysqL
启动MysqL
/etc/init.d/MysqL start
此处如果提示错误,记得先ps –ef|grep MysqL 查看MysqL进程,如果有的话,请先全部kill,然后在执行上面命令。

5、客户端连接测试

/work/program/MysqL/bin/MysqL -uroot -p
此时要求输入密码,就是前面初始化时生成的密码。
这时如果连接服务的时候出现错误
ERROR 2002 (HY000): Can't connect to local MysqL server through socket '/tmp/MysqL.sock' (2)
则需要在在my.cnf中填加:
[client]
socket = /work/program/MysqL/tmp/MysqL.sock

连上后,在做任何操作前,MysqL要求要改掉root的密码后才能进行操作。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
MysqL> alter user 'root'@'localhost' identified by 'xxxxxxx';

然后exit退出,在重新用新密码登录试试。

四.将备份的数据库导入新版MysqL
[root@jjxnhd-192-11 opt]# MysqL -uroot –p
MysqL> create database hive;
MysqL> create database oozie;
MysqL> use hive;
MysqL> set names utf8;
MysqL> source /opt/szw/hive.sql;
MysqL> use oozie;
MysqL> set names utf8;
MysqL> source /opt/szw/oozie.sql;

五.查看MysqL版本

如果你查看时版本还是原来的,那么你需要把/work/program/MysqL/bin/MysqL拷贝到/usr/bin/下。注:/usr/bin 下原来也有MysqL ,因此拷贝过去的时候记得先备份。

猜你在找的CentOS相关文章