iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >操作mysql5.7升级到mariadb10.2.16方法
  • 846
分享到

操作mysql5.7升级到mariadb10.2.16方法

2024-04-02 19:04:59 846人浏览 安东尼
摘要

下面讲讲关于操作Mysql5.7升级到mariadb10.2.16方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完操作mysql5.7升级到mariadb10.2.16方法这

下面讲讲关于操作Mysql5.7升级到mariadb10.2.16方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完操作mysql5.7升级到mariadb10.2.16方法这篇文章你一定会有所受益。

    记录一个mysql数据库升级操作。

    客户环境不能连外网,因此所有程序应用的安装都只能通过提前下载离线软件安装包上传到目标云服务器上进行安装。原来的mysql5.7数据库也是通过rpm软件包进行安装的。

    数据库云服务器操作系统是红帽的rhel7.2 ,64位。

    客户的一台mysql云服务器漏洞扫描发现有漏洞,数据库版本如下:

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.20, for linux (x86_64) using  EditLine wrapper
Connection id:15176291
Current database:
Current user:mysql@localhost
SSL:Not in use
Current pager:stdout
Using outfile:''
Using delimiter:;
Server version:5.5.5-10.0.21-MariaDB-log MariaDB Server
Protocol version:10
Connection:Localhost via UNIX Socket
Server characterset:latin1
Db     characterset:latin1
Client characterset:utf8
Conn.  characterset:utf8
UNIX socket:/opt/beh/core/mysql/sock/mysql.sock
Uptime:107 days 2 hours 11 min 53 sec

    版本有点奇怪,直接使用mysql --version看到的版本是mySQL Server 5.7.2 ,但是上面status中的Server version:却是5.5.5-10.0.21-MariaDB-log MariaDB Server。反正不管怎么样,都是需要升级到 mariadb 10.1以上的版本。到官网上查看最新的稳定版本,官网下载地址如下:

https://downloads.mariadb.org/

看到10.2.16是稳定版本,该版本的下载地址如下:

Http://mariadb.mirror.iWEB.com//mariadb-10.2.16/bintar-linux-systemd-x86_64/mariadb-10.2.16-linux-systemd-x86_64.tar.gz

升级思路:

    由于版本跨度太大,不适合逐个版本升级,采用重新安装的方法,即将原来的版本卸载,然后重新安装新的版本。

    为了保证数据安全,选择另一台同版本操作系统的云服务器作为备机,安装一模一样的数据库版本,并且将原数据库云服务器的数据库通过mysqldump命令导出,并导入的备机中。备机准备好之后,业务应用程序修改数据库连接配置连接到备机数据库。然后再对原数据库云服务器进行数据库升级操作。

操作记录:

    数据库备份:

    将原数据库进行全库备份:
    mysqldump -u root -p --all-databases >mysqldump20180712.sql
    对业务数据库Hive也进行单独备份:
    mysqldump -u root -p hive >hive20180712.sql

    数据库备机安装:

    原数据库云服务器已经安装的rpm包如下:

[root@hadoop001 dbdata]# rpm -qa|grep mysql

mysql-commUnity-client-5.7.20-1.el7.x86_64

mysql-community-common-5.7.20-1.el7.x86_64

mysql-community-libs-5.7.20-1.el7.x86_64

mysql-community-devel-5.7.20-1.el7.x86_64

mysql-community-server-5.7.20-1.el7.x86_64    

 原数据库云服务器中还保留着最初的mysql5.7的所有安装rpm包,将原数据库云服务器中的rpm安装包文件全部拷贝到备机中:
    scp mysql-community-* hadoop002:/data_china/ywb/
    在备机中安装mysql相关软件包:
    yum localinstall mysql-community-*  
    
    备机启动mysql数据库:
    systemctl start mysql    

    数据库备机数据导入:

将原数据库中的数据库备份文件传到备机:
    scp mysqldump20180712.sql  hadoop002:/data_china/ywb/
    
    在备机上恢复mysql数据库:
    mysql -u root -p <mysqldump20180712.sql 
    
    备机上验证是否恢复成功:
    mysql -u root -p 
    mysql>show databases;
    mysql>use hive;
    mysql>show tables;
    mysql>quit;

    验证成功之后,通知业务应用端修改程序端数据库连接配置,使业务应用连接到备机数据库。一切正常之后,开始对原数据库云服务器进行升级。

    原数据库升级:

    1、删除原mysql5.7版本数据库:

首先,将原数据库云服务器的mysql5.7程序和数据库彻底删除:
rpm -e mysql-community-server-5.7.20-1.el7.x86_64
rpm -e mysql-community-client-5.7.20-1.el7.x86_64
rpm -e mysql-community-common-5.7.20-1.el7.x86_64
rpm -e mysql-community-libs-5.7.20-1.el7.x86_64
rpm -e mysql-community-devel-5.7.20-1.el7.x86_64
    注意,执行上面的命令的时候其中有几个命令会失败,是由于有依赖关系,相关顺序调整一下即可。    
 删除残余文件,通过下面2条命令查找残余文件:
    find / -name mysql
    whereis mysql

    上面两个命令会查找mysql相关文件,将相关的文件能删除的都删除,如果为了保险,可以将一些不确定能删的文件mv到一个特定目录。谨慎些还是不会错。    

    mysql5.7删除干净之后,接下来就是按照新的mariadb 10.2.16版本的数据库:

    2、安装新版本mariadb 10.2.16 数据库

    将上面准备好的软件安装包mariadb-10.2.16-linux-systemd-x86_64.tar.gz 上传到原数据库云服务器hadoop001中,然后解压:

    tar xzvf mariadb-10.2.16-linux-systemd-x86_64.tar.gz     

#更改安装目录:注意不要提前建立/usr/local/mysql目录,直接放过去即可
mv mariadb-10.2.16-linux-systemd-x86_64 /usr/local/mysql/
     
#进入/usr/local/mysql目录
[root@toydns mysql]#cd  /usr/local/mysql
#在/usr/local/mysql/support-files/下的配置文件模板,已经配置好的部分参数,分别用于不同的环境,这里说明一下:
my-small.cnf 这个是为小型数据库或者个人测试使用的,不能用于生产环境
my-medium.cnf 这个适用于中等规模的数据库,比如个人项目或者小型企业项目中,
my-large.cnf 一般用于专门提供SQL服务的云服务器中,即专门运行数据库服务的主机,配置要求要更高一些,适用于生产环境
my-huge.cnf 用于企业级云服务器中的数据库服务,一般更多用于生产环境使用
所以根据以上几个文件,如果个人使用或者测试,那么可以使用前两个模板;企业云服务器或者64G以上的高配置服务器可以使用后面两个模板,另外也可以根据自己的需求来加大参数和扩充配置获得更好的性能。
[root@toydns mysql]# ll support-files/
-rw-r--r--. 1 1021 1004  4914 Nov 27 18:32 my-huge.cnf
-rw-r--r--. 1 1021 1004 20421 Nov 27 18:32 my-innodb-heavy-4G.cnf
-rw-r--r--. 1 1021 1004  4901 Nov 27 18:32 my-large.cnf
-rw-r--r--. 1 1021 1004  4914 Nov 27 18:32 my-medium.cnf
-rw-r--r--. 1 1021 1004  2840 Nov 27 18:32 my-small.cnf
#复制my-medium.cnf到etc下并改名为my.cnf,修改数据库文件存放的目录
cp support-files/my-medium.cnf  /etc/my.cnf
vi /etc/my.cnf
# The MariaDB server
[mysqld]
port            = 3306   
socket          = /tmp/mysql.sock
basedir = /usr/local/mysql   //mysql目录
datadir= /var/lib/mysql  //数据存放位置
innodb_file_per_table = on  //每张表一个单独文件,便于管理
skip_name_resolve = on  //忽略反向解析,加快访问速度
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
:wq保存后给权限
注意,datadir= /var/lib/mysql 这个目录需要提前准备好:
mkdir /var/lib/mysql
chown mysql:mysql /var/lib/mysql
#添加MySQL到PATH环境变量里面去,省的以后敲命令麻烦
[root@toydns mysql]# vi /etc/profile.d/mysql.sh
export  PATH=/usr/local/mysql/bin:$PATH
source /etc/profile.d/mysql.sh  使这个配置文件及时生效
#初始化mysql
/usr/local/mysql/scripts/mysql_install_db --user=mysql
#创建mariadb自启动脚本,并加入开机启动
cp /usr/local/mysql/support-files/systemd/mariadb.service  /usr/lib/systemd/system/
此处有坑,特别注意: 
/usr/lib/systemd/system/mariadb.service 这个脚本中有一个参数 ProtectSystem=full ,需要改为false
# Prevent writes to /usr, /boot, and /etc
ProtectSystem=false
默认情况下ProtectSystem=full,/usr目录被保护不能写入数据,上面设置的datadir目录最初是设置在/usr/local/mysql/data中,执行
systemctl start mariadb
的时候会报错无法写入XXX文件,因为/usr整个目录都被写保护。解决方法有两个,一个是将ProtectSystem=full 改为ProtectSystem=false ,一个就是更改datadir目录位置,不要放在/usr目录下。我在这里是2个地方都改掉。
最后使能服务,使之主机重启后能自动启动。
systemctl enable mariadb
启动mysql数据库:
systemctl start mariadb

MySQL的安全设置

[root@toydns mysql]# ./bin/mysql_secure_installation 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
passWord for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):   //直接回车,默认为空
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y     //是否设置MySQL管理员root的密码,y设置,输入2次
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
Go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y    //是否删除匿名账户 y删除
 ... Success!
NORMally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n   //是否不允许root用户远程登陆,n不禁用
 ... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y   //是否删除test测试数据库,y删除
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y   //重新加载可用的数据库表  y 是
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

    3、导入数据库备份

    新版本数据库mariadb 10.2.16 安装完成之后,将原来备份的数据库导入:

    mysql -u root -p <mysqldump20180712.sql

    注意,如果应用端在这段时间有数据更新,需要从备机导出数据库文件,使用备机的最新数据备份进行恢复。

    收尾工作:

    所有这些工作完成后,通知应用业务厂家将应用的数据库连接指向升级后的数据库。

    由于原来的数据库版本是mysql5.7,最新的数据库是mariadb10.2.16,应用端的java程序连接driver需要改,连接字符串也需要修改。这一块内容不做描述。

    应用厂家的应用程序使用的普通用户,比如hadoop用户,用户的环境变量和用户权限需要做一定的设置,环境变量参考在用户目录下的 .bashrc 或者 .bash_profile 中增加这一行:

export  PATH=/usr/local/mysql/bin:$PATH
    修改后运行source命令使之生效:  source ~/.bashrc
    进入mysql进行权限赋予:
    grant all privileges on *.* to hadoop@"%" identified by 'xxxxxx';
    flush privileges;

总结:

    由于版本跨度太大,mysql5.7到mariadb10.2.16 的升级其实都不能叫做“升级”了,实际是就是新安装,关键是找到备机,将原有的数据库备份到备机上解决后面重装数据库的后顾之忧。

    数据库安装的方法可以通过联网yum 安装,或者离线通过软件包进行安装,在这个案例中,由于客户云服务器不能连接外网,因此全部的安装都是使用下载好软件安装包进行安装。这种离线安装方式相对来说效率更低一些,也容易出错。

对于以上操作mysql5.7升级到mariadb10.2.16方法相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的数据库板块。

您可能感兴趣的文档:

--结束END--

本文标题: 操作mysql5.7升级到mariadb10.2.16方法

本文链接: https://www.lsjlt.com/news/34913.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 操作mysql5.7升级到mariadb10.2.16方法
    下面讲讲关于操作mysql5.7升级到mariadb10.2.16方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完操作mysql5.7升级到mariadb10.2.16方法这...
    99+
    2022-10-18
  • win10 1809升级到1903 win10的操作方法
    本篇内容主要讲解“win10 1809升级到1903 win10的操作方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10 1809升级到1903 win10的操作方法”吧!win10 ...
    99+
    2023-06-10
  • XP升级到Win8操作系统有哪些方法
    近日,微软透露了Windows8的升级详情,所有 Windows XP, Vista 和 Windows7的用户可升级至 Win8,但是有一些限制。如XP系统必须安装过SP3才能升级。Windows8系统详...
    99+
    2022-06-04
    升级到 操作系统 方法
  • 升级redhat 6.8 默认gdb 7.2到gdb 8.3.1的操作方法
    这期内容当中小编将会给大家带来有关升级redhat 6.8 默认gdb 7.2到gdb 8.3.1的操作方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  &...
    99+
    2022-10-18
  • linux把php升级到5.6的实操方法
    1:进入终端后查看php版本 php -v 输出可能如下: PHP 5.4.35 (cli) (built: Nov 14 2014 07:04:10) Copyright (c) 1997-201...
    99+
    2022-06-04
    linux php升级
  • win7系统升级win10详细操作方法
    自从Win10推出之后,很多Win7的用户都不再满足自己的系统了,想要装Win10但又不想装双系统,那么Win7能不能升级到Win10呢?下面就和大家介绍一下电脑升级win10教程吧。1、首先我们可以在电脑上下载这个工具,然后选择在线重装,...
    99+
    2023-07-14
  • 将mysql升级到5.7的操作步骤
    这篇文章主要介绍了将mysql升级到5.7的操作步骤,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。将mysql升级到5.7的方法:1、下载对应系...
    99+
    2022-10-18
  • win10升级到专业版如何操作
      如今我们购买的电脑大部分都是预装的家庭版系统,因为家庭版的功能没有专业版的齐全,于是有小伙伴想升级到专业版,不过有很多小伙伴都不知道win10升级到专业版需要如何操作,接下来小编就把win10系统升级到专业版的方法分享给大家。  win...
    99+
    2023-07-10
  • 10G RAC升级到11G的方法(官方)
    在 Oracle Enterprise Linux 上升级到 Oracle RAC 11g了解如何在 Oracle Enterprise Linux 5 上逐步将 Oracle RAC 10g 第 2 版升级到 Oracle RAC 11g...
    99+
    2023-06-06
  • ThinkPHP3.2.3从php5升级到php7的方法
    这篇文章主要介绍了ThinkPHP3.2.3从php5升级到php7的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先ThinkPHP3.2.3支持php7吗, 绝对支...
    99+
    2023-06-14
  • windows7旗舰版升级到10如何操作
    自win10系统推出以来,许多用户被其创新的操作界面和强大的操作功能所吸引。因此,很多用户都纷纷安装来体验,当然有用户是想要从win7旗舰版升级到win10系统的,下面就和大家聊聊win7系统升级win10的步骤吧。1,鼠标右键“开始菜单”...
    99+
    2023-07-14
  • win7旗舰版升级sp1的详细操作方法
    win7旗舰版升级sp1的详细操作方法是什么sp1是补丁windows7 Service Pack 1的缩写,win7 sp1内部版本号7601,一些朋友需要将win7升级sp1,有些用户禁用自动更新,没将win7旗舰版升级到sp1最新版,...
    99+
    2023-07-10
  • xp升级到win7的方法是什么
    这篇文章主要讲解了“xp升级到win7的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“xp升级到win7的方法是什么”吧!xp升级到win7傻瓜教程首先建议使用第三方软件来一键简易...
    99+
    2023-06-30
  • PHP 8.1.14升级低版本openssl扩展的操作方法
    问题背景: PHP8.1.4内嵌openssl源码编译出来的openssl库版本号是1.0.2.x系列,低版本的openssl扩展存在安全漏洞,需要将该扩展升级openssl 社区最新版本3.0.8 ...
    99+
    2023-09-03
    php 开发语言 linux
  • MySQL5.7升级MySQL8.0的完整卸载、安装及连接Navicat的方法
    这篇文章主要介绍了MySQL5.7升级MySQL8.0的完整卸载、安装及连接Navicat的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL5.7升级MySQL8.0的完整卸载、安装及连接Navic...
    99+
    2023-07-05
  • 从Win8.1系统升级到Win8.1 Update的方法
    要将Windows 8.1系统升级到Windows 8.1 Update,请按照以下步骤进行操作:1. 确保你的计算机已经安装了Wi...
    99+
    2023-08-30
    win8
  • windows10家庭版升级到专业版怎样操作
    windows10家庭版升级到专业版怎样操作是许多用户想知道的内容,大部分用户的电脑都是家庭版的win10,因而客户们假如要想升级专业版要如何操作呢,其实在输入激活密钥的时候客户就可以输入专业版的密匙来操作升级,下面便是实际的windows...
    99+
    2023-07-14
  • Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作方法
    最近 PostgreSQL 15 版本正式发布了,新版本的各种特性和好处本文就不展开介绍了,主要介绍一下 Windows 环境下 PostgreSQL 大版本升级的方法,我们现在的几...
    99+
    2022-11-13
    Windows PostgreSQL升级 Windows PostgreSQL pg_upgrade 升级
  • Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作方法
    最近 PostgreSQL 15 版本正式发布了,新版本的各种特性和好处本文就不展开介绍了,主要介绍一下 Windows 环境下 PostgreSQL 大版本升级的方法,我们现在的几个数据库都是运行在 Windows服务...
    99+
    2022-10-19
  • python 2.6.6升级到python 2.7.x版本的方法
    1.下载python2.7.x wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz 2.解压并编译安装 tar -zxvf Pytho...
    99+
    2022-06-04
    升级到 版本 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作