Linux下的MySQL数据备份文件乱码问题

本文介绍了在导入数据或运行SQL文件前检查数据库编码的重要性,以防止乱码问题。通过登录MySQL,查看并修改配置文件(如`/etc/my.cnf`),确保使用UTF8编码。在备份数据库时,使用`mysqldump`命令并添加相应参数,以确保备份内容的正确性,特别是处理BLOB类型数据时。最后,文章提供了备份脚本的执行方法,以确保备份的数据库编码正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入数据或者运行sql文件之前,先查看数据库编码

# 登录MySQL
mysql -u root -p
# 查看编码
show variables like '%char%' # 发现有的编码不是utf8
# 退出
quit

进入 /etc/my.cnf 修改配置文件(修改之前关掉MySQL服务)

# 在 [mysqld] 之上加上:
[client]
default-character-set=utf8
# 在 [mysqld] 下加上:
character-set-server=utf8
init_connect='SET NAMES utf8'

修改完保存后开启服务后导入数据或运行sql文件至数据库

备份命令(这里命令中不写用户名和密码是因为在配置文件中已经配置了)

备份脚本要注意开放可执行权限

mysqldump --default-character-set=utf8 databasename > 备份的路径/bk_sql_$(date +%Y%m%d-%H%M%S).sql

如果发现备份的内容还是乱码,可能是表结构中有blob类型; 这个参数的含义是用16进制的方式导出BINARY, VARBINARY, BLOB类型的数据。

添加参数后的命令

mysqldump --default-character-set=utf8 --hex-blob databasename> 备份路径/bk_sql_$(date +%Y%m%d-%H%M%S).sql;

修改完后运行脚本查看编码正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值