Code前端首页关于Code前端联系我们

包含Linux下mysql备份加密的帖子

terry 2年前 (2023-09-30) 阅读数 43 #Mysql
文章标签 Mysql

文章内容列表:

  • 1、LINUX下如何直接备份MYSQL数据库?
  • 2、Linux上mysql的备份与恢复
  • 3、Linux下mySQL数据库的备份方法和脚本?
  • 4、Linux下MySQL数据库备份工具有哪些?

LINUX下如何直接备份MYSQL数据库?

我希望这篇文章对您有用。学会赚钱。我刚刚用谷歌搜索了你的问题。

使用命令进行备份

MySQLl提供了mysqldump命令,我们可以使用它。数据备份。

根据提示输入密码。这会将tm数据库的所有表结构和#mysqldump -u root -p tm tm_050519.sql数据备份到tm_050519.sql。由于备份必须连续进行,如果数据量会占用很多空间的话,可以使用gzip来压缩数据。命令为:

# mysqldump -u root -p tm | gzip tm_050519.sql.gz

系统崩溃。在系统重建过程中,您可以按如下方式恢复数据:

# mysqldump -u root -p tm tm_050519.sql

直接从压缩文件恢复:

#gzip tm_050519z.sql.gz。 mysqldump -u root -p tm

当然,还有很多更直观的MySQL工具。 phpMyAdmin等备份和恢复功能使用起来非常方便。但我认为mysqldump是最基本、最通用的。

2。使用 crontab,系统每天定期对 mysql 数据库进行备份。

利用系统crontab定期执行备份文件,并按日期保存备份结果,以达到备份目的。

1。创建备份文件保存路径 /var/backup/mysqlbak

# mkdir -p /var/backup/mysqlbak

2.创建 /usr/sbin/bakmysql

#vi /usr /sbin/bakmysql.sh

#!/bin/bash

# mysql 备份脚本

cd /ql/backup/my 和 dateDIR=`日期 +"%y-%m-%d"`

mkdir -p $dateDIR/data

for i in `/usr/local/www/mysql/bin/mysql -uroot -plin31415926 - e“显示数据库”|

grep -v“数据库”| grep -v “信息架构”`

do

/usr/local/www/mysql/bin/mysqldump -uroot -plin31415926 $i |

gzip /var/backup/mysqlbak/$dateDIR/${i}_${dateDIR}.gz

done

3.更改文件属性使其可执行

# chmod +x /usr /sbin/bakmysql

4。 /etc/crontab

# crontab -e

Add

01 3 * * * root /usr/sbin/bakmysql

#表示每天3个小时进行备份所以在/var/backup/mysqlbak下每天都可以看到保存的sql文件!

linux下Mysql备份与恢复

通常是即时备份。既是主人又是追随者。或者每日增量备份。

本文在Linux下测试,MySQL版本4.1.14。适当修改后可适用于MySQL 4.0、5.0等版本。

本文适用于未启用复制的MySQL。如果启用了复制,则可能不需要采用该备份策略或更改相关参数。

每个人的备份策略可能不同,请根据当前情况进行调整,并通过示例得出结论。请勿复制,以免造成不必要的损失。

我希望你明白这个脚本的作用!

脚本说明

每周备份所有数据,每天备份binlog,即增量备份。

(如果数据较少,每天备份一次整个数据,就这样,可能不需要做增量备份)

作者对shell脚本不是很熟悉,所以他们很多地方都写得很傻:)

启用公寓日记

默认情况下,mysql 4.1只有错误日志,没有其他日志。您可以通过更改配置来打开存储日志。有几种方法,其中一种是在/etc/my.cnf中添加mysqld部分:

[mysqld]

log-bin

日志的主要作用是增量备份或复制(有也可用于其他目的)。

如果要做增量备份,需要打开这个日志。

对于数据库操作频繁的mysql来说,这个日志会很大,可能有好几个。

刷新数据库中的日志或者使用mysqladmin、mysqldump调用flush-logs并使用delete-master-logs参数,这些日志文件将会消失。并创建一个新的日志文件(一开始为空)。

所以如果你从不做备份,你可能不需要打开日志。

可以在全量备份的同时调用flush log,在增量备份之前调用flush log来备份最新的数据。

全量备份脚本

如果数据库中有大量数据,我们通常每隔几天或几周备份一次数据,以避免影响应用程序的运行。如果数据量比较小,每天备份一次也没关系。

#!/bin/sh

# mysql数据备份脚本

# by scud

# 10/30/2005

#

BakDir=/backup/mysql

LogFile= /backup/mysql/mysqlbak.log

DATE=`日期 +%Y%m%d` " echo " " $LogFile

echo "------------ - ----------------------- --- -----" $LogFile

echo $(日期 +"%y-% m -%d %H:%M:%S") $LogFile

echo "----- --- ------------------" $LogFile

cd $BakDir

DumpFile=$DATE.sql

GZDumpFile=$DATE.sql.tgz

mysqldump --quick --all-databases --flush-logs

--刷新主日志 --lock-all-tables

$DumpFile

echo "转储完成" $LogFile czvf $GZDumpFile $DumpFile $LogFile 21

echo "[$GZDumpFile]备份成功!" $LogFile

rm -f $DumpFile

#删除之前的每日备份文件:完成后的增量备份文件 备份后删除增量备份文件。

cd $BakDir/daily

rm -f *

cd $BakDir

echo "备份完成!"

echo“请检查目录$BakDir!”

echo“复制到本地磁盘或 ftp 某处!!!”

ls -al $BakDir

上面的脚本将mysql增量备份到本地/backup/mysql目录。备份文件放置在/backup/mysql/daily目录下。

注意:以上脚本不会将备份文件传输到其他远程计算机,也不会删除几天前的备份文件:用户需要添加相应的脚本或进行手动操作。

增量备份

增量备份数据量比较小,但必须在全量备份的基础上进行操作。用户可以权衡时间和成本,选择最适合自己的方法。

增量备份使用bin log,脚本为:

#!/bin/sh

#

# mysql binlog 备份脚本

# ladbin/my/qr - messages

DATADIR= /var/lib/mysql

BAKDIR=/backup/mysql/daily

###如果您有特殊设置,请在此处更改或更改应用变量的行:默认为机器名称,默认情况下mysql 还采用机器的名称

HOSTNAME=`uname -n`

cd $DATADIR

FILELIST=`cat $HOSTNAME-bin.index`

##统计行数,即文件数

COUNTER=0

for file $FILELIST

do

COUNTER=`表达式 $COUNTER + 1 `

done

NextNum=0

对于 $FILELIST NextNum=`表达式 $NextNum + 1`

if [ $NextNum -eq $ COUNTER ]

then

echo “最后跳过”

else

else

if(test -e $dest)

then

echo “跳过现有的 $base”

else

echo "copying $base"

cp $base $BAKDIR ♝ fi fi

done

echo "backup mysql binlog ok"

增量备份脚本将日志刷新到备份之前。 MySQL自动将内存中的日志放入文件中,然后生成新的日志文件,所以只需要前几个就够了,即不创建最后一个。

由于上次备份可能创建了多个日志文件,因此您应该检查这些文件。如果已备份,则无需备份。 。

注:同样,用户需要自行远程转发,但不能删除。完整备份后程序自动生成。

访问设置

脚本已准备就绪。必须进行设置才能运行脚本。正确的用户名和密码,mysqladmin和mysqldump都需要用户名和密码。当然,可以将它们输入到脚本中,但更改它们并不方便。假设我们使用系统的root用户来运行脚本,那么我们必须在/root(即root用户的主目录)下运行一个.my.cnf文件,文件内容如下:

[mysqladmin ]

密码=密码

用户=根

[mysqldump]

用户=根

密码=密码注意:使该文件只能由 root 读取。 (chmod 600 .my.cnf)

该文件表明程序使用mysql root用户备份数据,密码设置正确。这样您就不必在脚本中输入用户名和密码。

自动运行

要自动运行备份程序,我们需要将其添加到crontab中。

有两种方法,一种是根据我们自己的选择将脚本放在/etc/cron.daly目录下,像/etc/cron.weekly这样的目录。

一种是使用 crontab -e 将其包含在 root 用户的计划任务中。例如,每周日凌晨 3 点进行完整备份,每周一到周六早上进行每日备份。 3点运行。

Linux上MySQL数据库备份方法和脚本?

方法1。适用于所有格式的mysql数据库,编写脚本导出导入数据库即可正常执行:

1。导出整个数据库 mysqldump -u 用户名 -p 数据库名 导出文件名 mysqldump -u wcnc -p smgp_apps_wcnc /存储路径/wcnc.sql

2.导出表 mysqldump -u 用户名 -p 数据库名 表名 导出文件名 mysqldump -u wcnc -p smgp_apps_wcnc users /存储路径/wcnc_users.sql

3、导出数据库结构 mysqldump -u - wcnc -p -d -add-drop -table smgp_apps_wcnc /存储路径/wcnc_db.sql

定义:

-d 无数据

--add-drop-table 在每个 create 语句前添加一个删除表 4。将常用源码命令导入数据库,进入mysql数据库控制台:

例如mysql -u root -p mysqluse数据库

2。 MyISAM的mysql数据表格式的方法

如果数据文件在/var/lib/mysql

文件夹下,则直接写脚本

cp -r /var/lib/mysql/Backup文件夹路径

使用 rsync 增量备份进行离线或计划的完整备份。

Linux下mysql数据库备份工具有哪些

1。 mysqldump:最早、最先进的逻辑备份工具。这是MySQL原生的逻辑备份工具,用于备份整个数据库实例、单个数据库和单个表。上手简单,学习成本几乎为0。备份简单,恢复也简单。

导出单个数据库ytt示例:mysqldump ytt /tmp/ytt.sql;

恢复也很简单:mysql /tmp/ytt.sql

缺点是保存速度慢。单个线程贯穿整个备份过程;如果需要恢复保存的数据集,也是运行在一个线程上,恢复速度也很慢。除非同时单独备份所有表,否则您将需要编写额外的脚本来进行多线程恢复。

2。 mysqlpump:mysqldump工具的改进版本,在MySQL 5.7 GA之后推出。多个线程可以同时备份同一个数据集,备份速度非常快。

其他缺点与mysqldump相同。

3。 MySQL Shell UTIL对象备份工具:最新版本MySQL 8.0.21,包含多线程备份和多线程恢复功能,可直接替代mysqldump/mysqlpump。

dump_instance/dumpInstance用于多线程备份整个MySQL单机实例。

dump_schemas/dumpSchemas用于多线程备份单个MySQL数据库。使用前两个工具导出的数据集文件MySQL Shell UTIL 备份和恢复工具具有以下功能:

1。压缩导出(默认压缩算法 zstd)

2。以块为单位导出数据集,每个块为32M

3。默认导出存储过程、容器函数、触发器、事件、用户、视图

4。导出默认 4 个线程

5。默认进度指示器

6。默认字符集是 utf8mb4

7。默认启用一致导出

8.默认的表、视图等。定义导出为 SQL 语句

9。默认数据导出为 TSV 格式数据

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门