技术改变生活

博客园 首页 新随笔 联系 订阅 管理

mysql数据库字符集不支持导致数据乱码恢复

   
mysqldump --default-character-set=latin1 -d test >table.sql
# -d只导出数据库表结构,不导表数据

mysqldump --default-character-set=latin1 -t test > data.sql
# -t 只导出数据库表数据,不导出表结构,--default-character-set指定导出的数据原字符集是latin1格式


sed -i.bak 's/latin1/utf8/g' table.sql
sed -i.bak 's/latin1/utf8/g' data.sql
#修改导出的数据的字符集为utf8格式


mysql -e 'create database library;'
#创建新的数据库,用于数据恢复;


mysql -e 'use library;' -e 'show tables;'
mysql -e 'use library;' -e 'drop table books;' -e 'drop table category;'
#查看原来的库中是否有数据,若已操作,则执行删除即可

mysql library < table.sql
mysql library < data.sql
#导入表结构和表数据到新库

mysql -e 'use library;' -e 'select * from category;'
mysql -e 'use library;' -e 'select * from books;'
#查询验证结果

 


mysql常用知识参考(附):

C:导出单张表
mysqldump -uroot -p123456 book books >books.sql #导出book库books表
D:导出库的表结构
mysqldump -uroot -p123456 -d book>booktable.sql #只导出book库的表结构
E:只导出数据
mysqldump -uroot -p123456 -t book>bookdata.sql #只导出book库中的数据
F:导出数据库,并自动生成库的创建语句
mysqldump -uroot -p123456 -B book2 >book2.sql
mysql -uroot -p123456 < book2.sql 导入不用指定数据名
导入数据:
A:导入所有数据库
mysql -uroot -p123456 <all.sql
B:导入数据库
Mysql -uroot -p123456 book <book.sql #如果导入时,没有对应的数据库,需要你手动创建一下:mysql> create database book;
使用source导入
mysql> create database book;
mysql> use book;
mysql> source /root/book.sql

c:导入表
mysql> drop table books;
mysql> source /root/books.sql; ##导入表时,不需要重新,创建表。要先进到相应的数据库中
mysql> select * from books;
D:导入表结构和数据
mysql> create database book;
mysql -uroot -p123456 book<booktable.sql
mysql -uroot -p123456 book<bookdata.sql



posted on 2021-09-20 12:36  小阿峰  阅读(339)  评论(0编辑  收藏  举报