centos mysql数据库备份(mysql导出sql文件)

各位老铁们,大家好,今天由我来为大家分享centos mysql数据库备份,以及mysql导出sql文件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

centos 7升级mysql 5.6到5.7带全部数据库备份-真香

为了提升性能,决定从MySQL 5.6升级到5.7版本,考虑到MySQL 8.0与5.x系列的显著差异,选择较为稳妥的升级路径。

首先,使用mysqldump工具备份所有数据库,确保数据安全。

接着,备份配置文件,以便后续还原。

确认当前系统运行的MySQL版本。

获取最新版本的MySQL安装捆绑包,或者通过官方repo.mysql.com资源库进行更新。

解压安装包,检查内容,删除不必要的文件,然后执行升级命令更新MySQL 5.6版本。

遇到rpm命令执行问题时,可以尝试使用yum install-y*.rpm来完成安装。

升级完成后,启动MySQL服务,执行相应的升级脚本以平滑地迁移数据。

最后,检查服务状态和版本,确保升级成功且无异常。

至此,已成功在CentOS 7系统中将MySQL 5.6升级到5.7版本,并完成了全部数据库的备份工作。

使用Mysqldump和Xtrabackup两种方式并发备份数据库

参考链接如下:

(1) xtrabackup下载参考链接

(2) Mysql5.7安装参考链接

(3) Mysql5.7版本下载参考链接

主要以Shell方式在Centos7.9操作系统上编写脚本。脚本大概思路是分别采用mysqldump和xtrabackup方式进行并发数据库备份,其中xtrabackup方式备份相对于mysqldump备份快一些。其中因环境差异问题,这里Mysqldump并发备份环境为mysql5.6;Xtrabackup并发备份环境为mysql5.7,这里可以选择mysql5.7作为通用环境。

二、脚本思路2.1 Mysqldump并发备份

1.定义登录用户、密码、备份目录为相关变量

2.提取所有库,并使用for循环语句结合Mysqldump进行备份

3.把临时备份文件压缩成tar.gz结尾的文件

4.删除临时备份文件

2.2 Xtrabackup并发备份

1.定义登录用户、密码、备份目录为相关变量

2.提取所有库,并使用for循环语句结合Xtrabackup进行备份

3.把备份情况及备份时间输出到一个指定文件

三、准备工作3.1安装mysql5.7

1.卸载mariadb

(1)检查系统是否已安装Mysql。返回值为空,代表没有安装Mysql。

(2)执行rpm-qa| grep mariadb命令查看Centos7默认安装数据库mariadb。

(3)执行rpm-e--nodeps mariadb-libs-5.5.68-1.el7.x86_64命令卸载默认数据库mariadb

(4)再次执行rpm-qa| grep mariadb命令查看Centos7默认安装数据库mariadb是否卸载掉,这里观察到卸载完成。

2.检查系统是否安装过mysql

(1)检查系统是否安装过mysql

(2)检查安装mysql路径

(3)删除mysql路径

3.检查有无创建mysql用户组

(1)查看有无创建mysql用户组

(2)若没创建,进行创建

4.下载5.7.24压缩包

5.解压5.7.24压缩包

6.为了方便输入,将解压后的包名修改为mysql5.7

7.更改mysql5.7目录下所有文件夹所属的用户组、用户以及权限

8.编译安装并初始化mysql,此时会产生一个初始登录密码,这里为DuXLp5N=;3D?

9.编写etc目录下的my.cnf配置文件,并添加配置。默认是不存在的。

10.修改/opt/mysql5.7/support-files/mysql.server为/opt/mysql5.7安装目录

11.启动mysql

(1)启动mysql

(2)添加软链接

(3)重启mysql

12.mysql操作

(1)登录mysql,这里的密码就是上面初始mysql产生的密码

(2)设置登录密码

13.开放远程连接

(1)切换mysql库

(2)授予 MySQL数据库的 root用户远程访问权限的情况下非常有用。默认情况下,MySQL仅允许来自本地主机的连接,因此将 Host值更改为'%'允许 root用户从任何位置连接。

(3)刷新权限

14.设置开机自启

(1)拷贝服务文件到/etc/init.d/下,并重命名为mysqld

(2)赋予可执行权限

(3)添加服务

(4)显示服务列表

15.安装完成后,创建库test

3.2二进制安装Xtrabackup

1.下载压缩包

2.在/opt目录下解压压缩包

3.将上面解压的目录移动到/usr/local/下,并更名为xtrabackup

4.添加环境变量

5.重新加载/etc/profile

6.安装验证

3.3安装依赖

1.安装perl-Digest-MD5依赖

如果不安装以上依赖,会发生以下报错

四、脚本编写4.1 Shell脚本4.1.1 Mysqldump并发备份

1.编写shell脚本

上面mysqldump参数说明如下:

上面split参数说明如下:

上面tar参数说明如下:

上面代码详细分析:

(1)定义备份文件名前缀,并将当前工作目录切换到备份目录。这段代码使用date命令生成一个以当前时间为前缀的备份文件名,并将备份目录切换为/data/mysql,如果该目录不存在则创建。

(2)获取需要备份的数据库列表。

(3)遍历数据库列表,使用mysqldump备份并分片。使用for循环遍历所有需要备份的数据库,使用mysqldump命令备份数据库,并通过split命令将备份结果分片,并以数据库名作为备份文件名的一部分。备份过程中使用&将任务放到后台并发执行。

(4)等待所有备份任务完成。

(5)打包备份文件并清理临时文件。使用tar命令将所有备份文件打包成一个压缩文件,并通过rm命令清理所有临时备份文件。

2.添加定时任务,每天凌晨1点定时执行脚本

3.结果验证

4.结果解压再次验证

4.1.2 Xtrabackup并发备份

1.编写shell脚本

上面xtrabackup参数说明如下:

上面代码详细分析:

(1)指定设置备份参数的变量。其中,MYSQL_USER和 MYSQL_PASSWORD是用于连接到 MySQL服务器的凭据。BACKUP_DIR是备份文件存储目录,THREADS是用于备份的线程数。

(2)使用mysql命令连接到 MySQL服务器,并运行 SHOW DATABASES;命令来获取所有数据库的列表。然后,使用 grep命令过滤掉系统数据库,如 Database、information_schema和 performance_schema。最后,将结果赋值给 DATABASES变量。

(3)遍历所有数据库,对每个数据库进行备份。在循环内部,首先根据数据库名称创建备份目录。然后,使用xtrabackup命令进行备份。该命令将备份所有数据库,并将备份文件存储在 TARGET_DIR目录中。备份过程中会使用 MYSQL_USER和 MYSQL_PASSWORD变量来连接到 MySQL服务器。--parallel=$THREADS参数指定备份使用的线程数。最后,将备份完成的消息写入 description.txt文件中。

2.添加定时任务,每天凌晨1点定时执行脚本

3.结果验证,这里只拿test1,其他类似。

上面文件说明如下:

五、排错总结5.1报错一

1.执行service mysql restart命令报错

2.报错处理

如何跨主机复制mysql数据库

有两种办法。

1、在B机器上装mysql。

将A机器上的mysql/data下的你的数据库目录整个拷贝下来。

将B机器上的mysql服务停止。

找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去,然后启动mysql服务就可以了。

2、使用SQL语句备份和恢复

你可以使用SELECT

INTO

OUTFILE语句备份数据,并用LOAD

DATA

INFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。

语法:

SELECT

*

INTO

{OUTFILE

¦

DUMPFILE}

’file_name’

FROM

tbl_name

LOAD

DATA

[LOW_PRIORITY]

[LOCAL]

INFILE

’file_name.txt’

[REPLACE

¦

IGNORE]

INTO

TABLE

tbl_name

SELECT

...

INTO

OUTFILE

’file_name’

在dos命令提示符下使用mysqldump命令进行备份.

如下:

C:\Documents

and

Settings\Administrator>mysqldump

yinshi

>c:\\backup.txt

-uroot

-p12142022

阅读剩余
THE END