02-----Centos升级数据库版本加强版

由于上一篇讲过同时下载两个数据库,以达到数据库版本的更新问题,但是想到后续删除不方便,所以还是先统一备份数据,然后再卸载已有数据库,再安装新版本的数据库。

按照以上的思路,开始实践。
参考文章,为自己的文章(建议直接用第03篇):
01-----Centos下载两个Mysql版本(场景是为了升级数据库版本)
02-----Centos升级数据库版本加强版
03-----Centos升级数据库版本终版(建议Centos升级数据库版本都使用这种方法)

一 Centos升级数据库版本加强版

1 先备份数据

使用Navicat登录已有的数据库版本。通过 右击每一个数据库进行备份,注意,备份的地方是被保存到本电脑的,而不是Centos电脑。
在这里插入图片描述
然后,记录每一个数据库的属性,同样右击每一个数据库,以方便新建数据库时保证一样,当然你新建数据库的时候可以选择默认,但是我没试过,不能确定是否对后续有影响。
在这里插入图片描述

2 下载mysql8.0.24

上面备份完成后,我们可以先下载高版本的数据库。
MYSQL官网

# 创建mysql安装目录
mkdir /usr/local/mysql

# 进入mysql安装目录
cd /usr/local/mysql/

# 下载mysql-8.0.24,官网选择Linux-Generic类型的操作系统
wget -c https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz

# 解压
tar -xvf mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz

# 重命名解压出来的文件夹名
mv mysql-8.0.24-linux-glibc2.12-x86_64 mysql-8.0.24

# 创建数据存储目录
mkdir mysql-8.0.24/data

3 卸载原有的数据库版本

#1 先把已有数据库服务停止
service mysqld stop

#2 先查看已有的数据库依赖
rpm -qa | grep -i mysql

# 2 卸载依赖,注意,必须按照顺序,否则会报错
rpm -e mysql57-community-release-el7-8.noarch
rpm -e mysql-community-server-5.7.30-1.el7.x86_64
rpm -e mysql-community-libs-5.7.30-1.el7.x86_64
rpm -e mysql-community-libs-compat-5.7.30-1.el7.x86_64
rpm -e mysql-community-common-5.7.30-1.el7.x86_64
rpm -e mysql-community-client-5.7.30-1.el7.x86_64

在这里插入图片描述

当卸载顺序出问题的时候,报错。
在这里插入图片描述
解决是:

yum remove mysql-libs
#由于我没有网络,可能会报错,并且需要等5分钟左右。但是最终还是能删除依赖。
#报完错后,过程中需要按下y。

在这里插入图片描述

然后执行完上面后,需要再次查看依赖,若还有存在,按照上面将其删除即可。我执行完上面后,只剩余一个依赖,所以只需rpm -e删除。

rpm -qa | grep -i mysql

rpm -e mysql-community-common-5.7.30-1.el7.x86_64

#再次查看,已经完成删除依赖
rpm -qa | grep -i mysql

在这里插入图片描述

然后删除目录。

cd /var/lib/  
rm -rf mysql/
whereis mysql
#注意/usr/local/mysql是我们自己新版本的目录,所以不用删除,其余的都删除

rm -rf /usr/lib64/mysql/
rm -rf /usr/share/mysql/

在这里插入图片描述

删除配置,实际是做备份,防止出问题。

mv /etc/my.cnf /etc/my.cnf.back

最后检查一下,我这里没有,所以没有多余的操作。

chkconfig --list | grep -i mysql
chkconfig --del mysqld

4 创建用户组和用户并授权

到这一步,实际上和上一篇基本一样了。
有mysql用户的这一步不需要处理。

#1 先查看是否有mysql这个用户,如果有就不需要再创建,没有就需创建
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql

#2 参加mysql用户
# 创建用户组
groupadd mysql
# 创建用户
useradd -g mysql mysql

# 授权用户
chown -R mysql.mysql /usr/local/mysql/mysql-8.0.24

5 初始化数据库

# 初始化数据库,不区分大小写--lower-case-table-names=1需在初始化时设置才生效
/usr/local/mysql/mysql-8.0.24/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.24 --datadir=/usr/local/mysql/mysql-8.0.24/data --lower-case-table-names=1

在初始化的时候,我们需要记住这个临时密码,后面需要使用到。
在这里插入图片描述

6 编写my.cnf配置文件

vim /etc/my.cnf
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql/mysql-8.0.24
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysql-8.0.24/data
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=100
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
# MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
# MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout=1800
wait_timeout=1800
# Metadata Lock最大时长(秒),一般用于控制alter操作的最大时长sine mysql5.6
# 执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
lock_wait_timeout=3600
# 内部内存临时表的最大值
# 比如大数据量的group by ,order by时可能用到临时表
# 超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size=64M
max_heap_table_size=64M
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

7 配置成服务并开机自启

# 进入主目录
cd mysql-8.0.24/
# 添加mysqld服务到系统
cp -a ./support-files/mysql.server /etc/init.d/mysql
# 授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
# 检查是否生效
chkconfig --list mysql

出现下图所示内容说明配置生效:
在这里插入图片描述

8 配置环境变量

vim /etc/profile

在/etc/profile中末尾添加以下内容:

export MYSQL_HOME=/usr/local/mysql/mysql-8.0.24
export PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/lib

在这里插入图片描述

#刷新
source /etc/profile

9 启动mysql服务

# 启动服务
service mysql start
# 查看服务状态
service mysql status
# 停止服务
service mysql stop
# 重启服务
service mysql restart

启动成功如下,建议用start,我自己手欠想看看错误的情况:
在这里插入图片描述

10 登录mysql

mysql -u root -p

输入上面初始化时的临时密码。

11 修改root用户密码

-- 修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

-- 刷新权限
flush privileges;

12 设置外网连接授权

执行以下语句设置允许所有ip访问root用户:

-- 进入数据库mysql
use mysql;

-- 修改root用户host,%表示允许所有ip访问root用户
update user set host='%' where user='root';

-- 刷新权限
flush privileges;

--退出
quit;

13 登录navicat

在这里插入图片描述
上图是我已经将备份数据恢复的截图。

由于除了rgvs和vss,其余四个数据库都是系统自带的库,所以我没必要进行恢复,但是还是有必要备份的。

14 恢复备份的数据库

首先按照预先保存的数据库属性创建数据库,也可以使用默认,但是不确定是否对原有业务有影响,建议还是先使用原来的属性。
在这里插入图片描述

然后右击该数据库,执行sql文件即可,成功执行可以看到sucessfully等字眼。
在这里插入图片描述

15 相关测试

在xshell上再次登录mysql,执行相应命令,没错的话就基本证明我们升级成功。

mysql -u root -p
select version();
use vss;
show tables;

在这里插入图片描述
完结。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值