MySQL常用操作

两台机器之间复制数据库

一键复制
在源库机器运行以下语句。名称有特殊字符比如!@#$%^&*的要用引号。
mysqldump -u源库用户明 -p源库密码 --opt 要复制的数据库名称 | mysql -u目标库用户名 -p'目标库密码' -h '目标库所在IP' 目标库名称
mysqldump -uroot -p123456789 --opt userdata | mysql -uroot -p'@bcdefgh' -h '192.168.1.1' newuserdata

压缩传输数据,适用于网速较慢的场景
加上--compress参数。
mysqldump -uroot -p123456789 --opt --compress userdata | mysql -uroot -p'@bcdefgh' -h '192.168.1.1' newuserdata

导出到一个文件,并压缩
mysqldump --quick db_name | gzip > db_name.contents.gz

导入上面的压缩文件
mysqladmin create db_name
gunzip < db_name.contents.gz | mysql db_name

手动备份:

  1. 备份一个数据库
    mysqldump -hhostname -uusername -pmypwd databasename > /path to backup/bakname.sql

备份并压缩
mysqldump -hhostname -uusername -pmypwd databasename | gzip > /path to backup/bakname.sql.gz

  1. 备份多个数据库
    mysqldump -hhostname -uusername -pmypwd databases databasename1 databasename2 databasename3 > /path to backup/bakname.sql
  2. 备份数据库一些表
    mysqldump -hhostname -uusername -pmypwd databasename table1 table2 table3 > /path to backup/bakname.sql
  3. 仅备份数据库结构
    mysqldump -no-data -databases databasename1 databasename2 databasename3 > /path to backup/bakname.sql
  4. 备份所有数据库
    mysqldump -uroot -p -A > /path to backup/bakname.sql

还原数据库

  1. 还原无压缩数据库
    mysql -hhostname -uuser -pmypwd databasename < /path to backup/bakname.sql
  2. 还原压缩数据库
    gunzip < /path to backup/bakname.sql.gz | mysql -hhostname -uusername -pmypwd

迁移到新服务器
mysqldump -hhostname -uuser -pmypwd databasename | mysql -hnew_hostname -C databasename

脚本定时备份

创建备份脚本

vim mysql_backup.sh

#!/bin/sh
# This is a mysql datbase backup shell script.

# set mysql info
hostname="localhost"
user="root"
password="my password"

# set database info
database="bak database name"
bakpath="path to backup"
date=$(date +%Y%m%d_%H%M%S)

# backup
mkdir -p $bakpath
mysqldump -h$hostname -u$user -p$password $database | gzip \ 
> $bakpath/$database_$date_sql.gz

创建定时任务

crontab: crontab 是linux系统下的一个任务调度器

crontab定时服务 启动|结束|状态
service crond start | status | stop

查看config文件,可以看到定时规则

cat /etc/cron

添加备份定时任务

crontab -e

添加定时计划,例如:每天2点执行

0 2 * * * /path to sh/mysql_backup.sh
保存退出

查看当前用户定时任务

crontab -l

查看定时计划日志

tail -f /var/log/cron

作者:walk_and_walk
链接:https://www.jianshu.com/p/b77dfd6d998b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

添加新评论