mysql备份与恢复
背景
(1)mysqldump工具是mysql自带的一个非常方便的一款小工具,默认安装路径在/usr/bin/mysqldump(centos6.7).
(2)查看安装包路径方法:
[root@cacti ~]# which mysqldump
/usr/bin/mysqldump
[root@cacti ~]# rpm -qf /usr/bin/mysqldump
mysql-5.1.73-8.el6_8.i686
mysql数据库备份命令
mysqldump -u用户 -p密码 数据库名 > (目录)导出文件名
注:备份可以进入数据库中进行也可以直接在命令行中执行!一般选择后者方式备份。
(1)数据库中进行备份
[root@cacti ~]# mysql -ucacti -pcacti
mysql> system mysqldump cacti > /data/cacti.sql;
[root@cacti ~]# cd /data
[root@cacti data]# ls
cacti.sql lost+found
(2)命令行中进行备份
[root@cacti ~]# mysqldump -ucacti -pcacti cacti > /data/cacti.sql
[root@cacti ~]# cd /data
[root@cacti data]# ls
cacti.sql lost+found
备份单个数据表
有时候数据库很大很大,整个库备份就不好管理,那就单独备份。
mysqldump -u用户 -p密码 dbname tablename > (目录)导出文件名
(1)数据库中进行备份
mysql> system mysqldump mysql time_zone_name > /data/tables.sql;
(2)命令行中进行备份
[root@cacti data]# mysqldump -ucacti -pcacti mysql user > /data/user.sql
备份多个数据表
例如备份cacti数据库的 vdef表和 version表到/data/vv.sql。
[root@cacti ~]# mysqldump -ucacti -pcacti cacti vdef version > /data/vv.sql
mysqldump 远程备份
mysqldump -h ip -u用户 -p密码 database > (目录)导出文件名
mysql数据库恢复
mysqldump -u用户 -p密码 dbname <(目录)导出文件名
mysqldump -ucacti -pcacti cacti < /data/cacti.sql
注意:
备份的时候没有指定字符集,结果在恢复的时候这个字符集跟你备份之前的字符集不一致,导致恢复后的数据是乱码!
备份命令:
mysqldump -uroot --default-character-set=gbk discuz pre_forum_post > /data/post.sql
# 加入了一个指定字符集的选项
mysql -uroot --default-character-set=gbk discuz < /data/post.sql
补充:
常见的字符集:gbk utf8 latin
中文里面支持的是gbk utf8(字符集请查阅资料)