mysql开启日志功能

  • 查看是否开启
  [plaintext]
1
2
3
4
5
6
7
mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | OFF | +---------------+-------+ 1 row in set (0.00 sec)
  • 查看当前日志
  [plaintext]
1
2
3
4
5
6
7
8
9
10
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
  [plaintext]
1
vi /etc/mysql/my.cnf

开启日志:

  [plaintext]
1
log-bin = /var/mysqllog/logbin.log
  • 查看状态
  [plaintext]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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基本语法:

  [plaintext]
1
mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql

其中: dbname参数表示数据库的名称; table1和table2参数表示需要备份的表的名称,为空则整个数据库备份; BackupName.sql 参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;

如:

  [plaintext]
1
mysqldump -u root -p blog_view > /root/backup/blog_view.sql;
  • 备份多个数据库
  [plaintext]
1
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
  • 备份所有数据库
  [plaintext]
1
mysqldump -u username -p -all-databases > BackupName.sql

2、还原一个数据库

  [plaintext]
1
mysql -u root -p [dbname] < backup.sq

定时备份

  • 创建定时备份脚本:
  [plaintext]
1
vi backup_blog_view.sh
  • 添加内容如下:
  [plaintext]
1
2
#!/bin/bash mysqldump -uroot -p123456 blog_view > /root/backup/blog_view_$(date +%Y%m%d_%H%M%S).sql
  • 进行备份压缩:
  [plaintext]
1
2
#!/bin/bash mysqldump -uroot -p123456 blog_view | gzip > /root/backup/blog_view_$(date +%Y%m%d_%H%M%S).sql.gz
  • 添加权限,执行测试:
  [plaintext]
1
2
chmod +x backup_blog_view.sh ./backup_blog_view.sh
  • 定时运行

ubuntu 下受用 crontab

  [plaintext]
1
$ ~# crontab -e

添加内容如下:

  [plaintext]
1
0 2 * * * /root/shell/backup_blog_view.sh

意思为凌晨2点执行备份脚本。

  • 重启 CRON 进程:
  [plaintext]
1
~# /etc/init.d/cron restart