mysqldump使用cmd窗口和powersell窗口导出sql中文乱码的问题

项目场景

我在使用Mariadb数据库更新数据的时候,由于数据库的表格中含有中文,在使用mysqldump导出sql语句的时候,中文显示乱码,如下图所示:

环境描述

  • 系统:windows10
  • 数据库: Mariadb -10.6.16-winx64

解决办法

首先查看一下我的数据库test的编码,连接数据库后输入

shell 复制代码
# 我的用户名为 root 端口号为13306 密码为mariadb123
mysql -uroot -P13306 -pmariadb123

连接上数据库后,然后输入:

sql 复制代码
#查看所有数据库
show databases;
#切换/打开test数据库 如果不切换数据库直接查询编码的结果会有所不同 如下图1(未切换数据库) 图2(切换数据库test)
use test;
#查看数据库的编码
show variables like "character%";

查询结果如下图所示:


其中:

  • character_set_client: 设置客户端使用的字符集。
  • character_set_connection: 连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型则按照服务器端默认的字符集设置。
  • character_set_database: 设置数据库服务器中某个库的字符集。
  • character_set_filesystem: 设置文件系统的字符集。
  • character_set_results: 设置服务端返回给客户端结果显示使用的字符集。
  • character_set_server: 设置服务器安装时指定的默认字符集。
  • character_set_system: 设置数据库系统使用的字符集。

原文关于mysqldump的使用说明点击此处学习

意思是:

在 Windows 上使用 PowerShell 创建的转储,其中包含输出 重定向会创建一个采用 UTF-16 编码的文件:

mysqldump [options] > dump.sql
但是,不允许将 UTF-16 作为连接字符集 (请参见不允许的客户端字符集), 因此无法正确加载转储文件。解决方法 此问题,请使用选项 ,这将以 ASCII 格式创建输出:--result-file
mysqldump [options] --result-file=dump.sql

使用cmd窗口和powershell窗口连接Mariadb数据库,导出sql的代码如下所示:

shell 复制代码
#cmd窗口  数据库为test 需要导出的表格为export5 
#导出的文件位置为 C:\Users\XXX\Desktop\temp\export5.sql
#此处导出数据用的符号位 >
mysqldump -uroot -P13306 -p --default-character-set UTF8 --hex-blob test export5 > C:\Users\XXX\Desktop\temp\export5.sql


#shell窗口  数据库为test 需要导出的表格为export5
#导出的文件位置为 C:\Users\XXX\Desktop\temp\export5.sql
#--hex-blob, 是为了把BINARY, VARBINARY, BLOB, BIT等类型导出为十六进制,这些类型比较容易乱码。
#--no-create-info,是不要编写重新创建每个转储表的 CREATE TABLE 语句,可根据需求删除。
#此处导出数据用的是 --result-file=
mysqldump -uroot -P13306 -pmariadb123 --default-character-set=utf8 --hex-blob --no-create-info test export5 --result-file=C:\Users\XXX\Desktop\temp\export5.sql

最终结果:

问题解决。


小结

想要深入学习的点击此处学习MySQL的说明文档

相关推荐
霖霖总总3 分钟前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
heartbeat..5 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
麦聪聊数据7 小时前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
AC赳赳老秦7 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
myzshare8 小时前
实战分享:我是如何用SSM框架开发出一个完整项目的
java·mysql·spring cloud·微信小程序
YMatrix 官方技术社区8 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
辞砚技术录9 小时前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong9 小时前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
墨笔之风10 小时前
java后端根据双数据源进行不同的接口查询
java·开发语言·mysql·postgres
欧亚学术10 小时前
突发!刚刚新增17本期刊被剔除!
数据库·论文·sci·期刊·博士·scopus·发表