MySQL数据库乱码以及备份还原

实验项目:一,更改数据乱码
二,mysql的完全备份,增量备份与恢复
实验思路:
一,更改数据乱码
1.我现在有一个数据库是乱码的,想要更改需要先导出数据表结构和数据内容
导出数据表结构:
mysqldump -uroot -p123 --default-character-set=latin1 -d book>booktable.sql
更改 booktable.sql 文件 将所有的类型改为utf-8
%s/latin1/utf8/g
导出数据内容:
mysqldump -uroot -p123 --default-character-set=latin1 -d book>booktable.sql
更改 booktable.sql 文件 将所有的类型改为utf-8
%s/latin1/utf8/g
2.重新导入数据表结构 和 内容 到新建的数据库中
创建新的数据库book2: mysql -uroot -p123 -e ‘create database book2 default character utf8;’
导入数据表: mysql -uroot -p123 book2<booktable.sql
导入数据内容: mysql -uroot -p123 book2<bookdata.sql
查看结果是否为utf8 : mysql -uroot -p123 -e ‘show create table book2.books;’
查看内容是否还为乱码: mysql -uroot --p123 -e 'select * from book2.books;
3.实验结束

二,mysql 的 完全备份,增量备份 与 恢复
1.安装第三方工具 xtarbackup
安装需要libev 依赖包
具体: 解压Percona-XtraBackup-2.4.14-ref675d4-el7-x86_64-bundle.tar
安装 libev依赖包:
rpm -ivh libev-4.03-3.el6.x86_64.rpm
安装xtarbackup:
yum -y install percona-xtrabackup-24-2.4.14-1.el7.x86_64.rpm
注意看看数据存放目录要不要修改
vim /etc/my.cnf
datadir=/data/mysql/data
修改完后重启服务
2.完全备份:
首先 先创建备份目录
mkdir /db_backup
进行备份:
innobackupex --user=root --password=123 /db_backup/ --socket=/usr/local/mysql/mysql.sock
备份完后可以查看一下
接着移动数据库:
mv /data/mysql/data/ /benet
使用工具还原数据:
innobackupex --copy-back /db_backup/2020-01-02_22-56-21/
修改权限:
chown -R mysql:mysql /data/mysql/data
重启服务:
/etc/init.d/mysqld restart
查看数据是否完整:
mysql -uroot -p123 -e ‘select * from book.books;’
3.实验完成

三。增量备份:
增量备份是在完全备份的基础上做的 前边已经做了完全备份 实验接着做就行
1.新添加数据库
create database aaa;
use aaa;
create table aaa1(id int,name char(20));
insert into aaa1 values(1,‘zhangsan’),(2,‘llisi’);
mysql> select * from aaa1;
±-----±---------+
| id | name |
±-----±---------+
| 1 | zhangsan |
| 2 | llisi |
±-----±---------+
添加完新数据库后开始做增量备份
2.创建备份目录
mkdir /zeng
innobackupex --user=root --password=123 --incremental /zeng --incremental-basedir=/db_backup/2020-01-02_22-56-21 --socket=/usr/local/mysql/mysql.sock
3.创建完成后开始恢复(需要先删除数据)
[root@localhost ~]# /etc/init.d/mysqld stop
[root@localhost ~]# rm -rf /data/mysql/data/
4.在所有备份目录下重做已提交的日志
innobackupex --apply-log --redo-only /db_backup/2020-01-02_22-56-21/ ---------------这是完全备份的日志

innobackupex --apply-log /db_backup/2020-01-02_22-56-21/ --incremental-dir=/zeng/2020-01-03_00-13-37 ----这是增量备份的日志

5.进行数据恢复
innobackupex --copy-back /db_backup/2020-01-02_22-56-21/
6.恢复mysql的权限
chown -R mysql:mysql /data/mysql/data
7.启动mysql 并测试数据是否恢复成功

/etc/init.d/mysqld restart

mysql -uroot -p123 -e ‘select * from book.books;’
8.实验完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值