nysql_2

备份常用操作基本命令
1、备份命令mysqldump格式
   格式:mysqldump -h主机名  -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql 
2、备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump  --add-drop-table -uusername -ppassword -database databasename > backupfile.sql
3、直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword -database databasename | gzip > backupfile.sql.gz
4、备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
5、同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql仅仅备6、仅备份份数据库结构
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
7、备份服务器上所有数据库
mysqldump –all-databases > allbackupfile.sql
8、还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
9、还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
10、将数据库转移到新服务器
mysqldump -uusername -ppassword databasename | mysql –host=... -C databasename
11、–master-data 和–single-transaction
   在mysqldump中使用–master-data=2,会记录binlog文件和position的信息 。–single-transaction会将隔离级别设置成repeatable-commited
12、导入数据库
常用source命令,用use进入到某个数据库,mysql>source d:\test.sql,后面的参数为脚本文件。
13、查看binlog日志
查看binlog日志可用用命令 mysqlbinlog  binlog日志名称|more
14、general_log
General_log记录数据库的任何操作,查看general_log 的状态和位置可以用命令show variables like “general_log%”  ,开启general_log可以用命令set global general_log=on

A定时 备份并导入 B的MySQL数据库
机器A的用户和机器B的用户创建ssh互相信任,避免使用scp命令时需要输入密码;使用ssh-keygen和ssh-copy-id命令实现。
A: 生成ssh公钥和ssh私钥
ssh-keygen
把本地主机的公钥复制到远程主机的authorized_keys文件上
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.52
测试通过ssh无密码登录
ssh root@192.168.1.52
B: ssh-keygen
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.160
ssh root@192.168.1.160
用ssh登录后退出的方法:在程序中输入exit,如果一次无法退出需要多尝试几次。

机器A:(使用root用户操作)
创建目录,脚本
mkdir -p /home/root/backup
cd /home/root/backup
touch backmv.sh backultrax.sh putBack.sh
mkdir backhistory

backmv.sh文件(移动文件)
vi backmv.sh
#!/bin/bash
/bin/mv /home/root/backup/ultrax_.sql.gz /home/root/backup/backhistory
backultrax.sh文件(备份数据库)
vi backultrax.sh
/usr/bin/mysqldump -uroot -p521365 ultrax --skip-lock-tables |gzip > /home/root/backup/ultrax_$(date +%Y%m%d_%H%M%S).sql.gz
putBack.sh文件(上传到机器B)
#!/bin/bash
/usr/bin/scp /home/root/backup/ultrax_
.sql.gz root@192.168.1.52:/home/root/backup/backnow

修改脚本的权限
chmod u+x backmv.sh
chmod u+x backultrax.sh
chmod u+x putBack.sh

定时(在/home/root/backup目录下创建)

crontab -e

*/9 * * * * /home/root/backup/backultrax.sh
*/9 * * * * /home/root/backup/putBack.sh
*/9 * * * * /home/root/backup/backmv.sh
注:根据需求设置定时时间;需要开启crond服务,并设置为开机自启动。

service crond start

chkconfig crond on

查看

service crond status

chkconfig crond --list

机器B:(使用root用户操作)
创建目录,脚本
mkdir -p /home/root/backup
cd /home/root/backup
touch backcp.sh backmv.sh backzip.sh reduction.sh
mkdir backnow backuphistory

backcp.sh文件(复制)
vi backcp.sh
#!/bin/bash
/bin/cp $(echo $(find /home/root/backup/backnow -name ‘ultrax*’)) /home/root/backup/backuphistory
backzip.sh文件(解压)
vi backzip.sh
#!/bin/bash
/bin/gunzip $(echo $(find /home/root/backup/backnow -name ‘ultrax*’))
reduction.sh文件(还原)
vi reduction.sh
#!/bin/bash
/usr/bin/mysql -uroot -p521365 back_ultrax < $(echo $(find /home/root/backup/backnow -name 'ultrax_.sql’))
backmv.sh文件(移动)
vi backmv.sh
#!/bin/bash
/bin/mv /home/root/backup/backnow/
.sql /home/root/backup/backuphistory

修改脚本的权限

chmod u+x backcp.sh

chmod u+x backmv.sh

chmod u+x backzip.sh

chmod u+x reduction.sh

定时(在/home/root/backup目录下创建)

crontab -e

*/10 * * * * /home/root/backup/backcp.sh
*/10 * * * * /home/root/backup/backzip.sh
*/10 * * * * /home/root/backup/reduction.sh
*/10 * * * * /home/root/backup/backmv.sh
注:根据需求设置定时时间;需要开启crond服务,并设置为开机自启动。
#systemctl start crond.service
#systemctl enable crond.service
查看

service crond status

chkconfig crond --list

修改以下代码,并解释改正的原因:#define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:6031) #include <stdio.h> #include <stdlib.h> #include <mysql.h> #include <string.h> #define N 3 MYSQL* conn; MYSQL m; void initialize() { // 初始化链接 conn = mysql_init(NULL); mysql_options(&m, MYSQL_SET_CHARSET_NAME, "gbk"); // 连接数据库 if (!mysql_real_connect(conn, "localhost", "b", "12345", "tang", 0, NULL, 0)) { printf("连接数据库失败: %s\n", mysql_error(conn)); exit(1); } else printf("数据库连接成功!\n"); } //录入学生信息 void Insert(MYSQL* mysql) { int i = 0; char* str1 = "insert into student(id,name,chengji) values("; char sql_insert[200]; for (i = 1; i <= N; i++) { char id[12], name[9]; char chengji=0; printf("请输入学生学号:"); gets_s(id, 12); printf("请输入学生姓名:"); gets_s(name, 9); printf("请输入学生成绩:"); gets_s(chengji, 9); int n = getchar(); sprintf(sql_insert," %s'%s', %5s", str1, id, name, chengji); mysql_query(mysql, sql_insert); printf("录入信息成功!\n"); } return; } // 显示学生信息 void Display(MYSQL* mysql) { char* str = "select from student"; MYSQL_RES* res; //一个结果集结构体 MYSQL_ROW row = NULL; //char**二维数组,存放一条条记录(一条记录代表一个学生的信息) char id[12], name[9]; char chengji; //向HySQL发送SQL语句 mysql_query(mysql, str); //获取结果集 res = mysql_store_result(mysql); //打印 printf("id\t name\t chengji\t"); while (row = mysql_fetch_row(res)) { for (int i = 0; i < mysql_num_fields(res); i++) { switch (i) { case 0: { strcpy(id, row[i]); break; } case 1: { strcpy(name, row[i]); break; } case 2: { strcpy(chengji, row[i]); break; } break; } } } printf("10s\t, %11s\t,%4s\n", id, name,chengji); nysql_free_result(res); } void finalize(){ // 关闭连接 mysql_close(conn); printf("已关闭数据库"); } int main() { initialize(); insert(); finalize(); return 0; }
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值