mysql开启日志功能
- 查看是否开启
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.00 sec)
- 查看当前日志
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show master status;
Empty set (0.00 sec)
- 编辑配置文件
my.cnf
vi /etc/mysql/my.cnf
开启日志:
log-bin = /var/mysqllog/logbin.log
- 查看状态
service mysql restart
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
备份还原
1、备份一个数据库
mysqldump基本语法:
mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql
其中:
dbname参数表示数据库的名称;
table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
BackupName.sql
参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;
如:
mysqldump -u root -p blog_view > /root/backup/blog_view.sql;
- 备份多个数据库
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
- 备份所有数据库
mysqldump -u username -p -all-databases > BackupName.sql
2、还原一个数据库
mysql -u root -p [dbname] < backup.sq
定时备份
- 创建定时备份脚本:
vi backup_blog_view.sh
- 添加内容如下:
#!/bin/bash
mysqldump -uroot -p123456 blog_view > /root/backup/blog_view_$(date +%Y%m%d_%H%M%S).sql
- 进行备份压缩:
#!/bin/bash
mysqldump -uroot -p123456 blog_view | gzip > /root/backup/blog_view_$(date +%Y%m%d_%H%M%S).sql.gz
- 添加权限,执行测试:
chmod +x backup_blog_view.sh
./backup_blog_view.sh
- 定时运行
ubuntu 下受用 crontab
$ ~# crontab -e
添加内容如下:
0 2 * * * /root/shell/backup_blog_view.sh
意思为凌晨2点执行备份脚本。
- 重启 CRON 进程:
~# /etc/init.d/cron restart