Linux_CentOS-服务器搭建 <四>

时间:2022-04-14 23:27:37

既然tomcat,弄好了,数据库安装好了。我们考虑考虑下。今天带给大家是,

数据库的还原备份:

备份开始:

       登录开始:  

mysql -u root -p

    创建一个测试用的数据库test并创建一张表test:

#创建新的测试数据库
create database test; use test; create table test (id int); insert into test values(1); insert into test values(2); insert into test values(3); insert into test values(4); insert into test values(5); select * from test;

  

然后备份test的整个数据库

   vi /usr/local/bakcupmysql/backup_test.sh

#!/bin/sh

date_str=`date +%Y%m%d`
cd /var/lib/mysql
mysqldump -h localhost -u root --password=123456 -R -E -e \
--max_allowed_packet=1048576 --net_buffer_length=16384 test\
| gzip > /usr/local/bakcupmysql/backuptest_$date_str.sql.gz echo "DataBase Backup Success!"

  //创建成功后必须先看参数,根据参数修改刚刚的文件。

  

max_allowed_packet 和 net_buffer_length 这两个参数起着决定性作用,速度差别几百上千倍

其原理是合并多条数据成为一个 SQL 插入语句。

导出时候注意点:
第一:
  -e 使用包括几个VALUES列表的多行INSERT语法;
  --max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
  --net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。
  注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值 大,否则可能出错。
  首先确定目标库的参数值
  mysql -u root -p
  mysql>show variables like 'max_allowed_packet';
  mysql>show variables like 'net_buffer_length'; 第二:
  /var/lib/mysql 这个是数据库的路径
  /usr/local/bakcupmysql/ 这个是备份的路径

  

#运行

sh /usr/local/bakcupmysql/backup_test.sh

  这样轻轻松松地,把数据库的给备份好了。你可以去 /usr/local/bakcupmysql/ 看看 多出了一个 dsideal_test_20131016.sql.gz 的文件。

下面开始还原

  从压缩文件直接恢复:

  cd 到你要备份的数据库的路径

gzip < dsideal_test_20130405.sql.gz | mysqldump -u root -p test

  

附加一些知识吧

  crontab -e
    在下面添加


01 3 * * * root /usr/local/backup_test.sh
#表示每天3点钟执行备份

  定时器一些知识

  

crontab -e
* * * /var/proftpd_data/backup/bin/mysqlFullBackup.sh
* * * /var/proftpd_data/backup/bin/ftpDownload.sh 前五个字段的整数取值范围及意义是: ~ 表示分 ~ 表示小时 ~ 表示日 ~ 表示月份 ~ 表示星期(其中0表示星期日)

在介绍下例子。我刚刚弄的

1.首先我们将要导入到数据库中的.sql文件放到你知道目录下,这样比较方便

2.进入mysql;mysql>create database netcredit;

3.使用新创建的数据库 mysql>use netcredit;

4.导入文件: mysql>source 导入的文件名;

5.如果没有提示错误信息提示,我们可以通过show tables;指令可以看到新创建的netcredit数据库里面已经导入了刚netcredit数据库里的内容。