百度
360搜索
搜狗搜索

linux下mysql命令乱码详细介绍

在 Linux 下使用 MySQL 命令时出现乱码,通常是字符集配置不一致导致的。以下是详细的排查和解决步骤:

一、检查当前字符集配置

首先登录 MySQL 客户端,执行以下命令查看当前字符集设置:
sql

 variables  

输出示例(正常应为 utf8mb4 系列):
plaintext

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8mb4 |

| character_set_connection | utf8mb4 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | utf8mb4 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

+--------------------------+----------------------------+

character_set_clientcharacter_set_connectioncharacter_set_results 等参数不是 utf8mb4,则需要调整。

二、修改 MySQL 配置文件

MySQL 的字符集配置主要通过 my.cnf(或 my.ini)文件控制,不同 Linux 发行版的配置路径可能不同(如 /etc/my.cnf/etc/mysql/my.cnf/etc/my/mysql.conf.d/mysqld.cnf)。

步骤 1:编辑配置文件

使用 sudo 权限打开配置文件:
bash

  /etc/my.cnf   

步骤 2:添加 / 修改字符集配置

在文件中添加以下内容(若已存在对应段落则修改):
ini

          # 服务端配置

# MySQL 客户端(命令行工具)

# 通用客户端配置

步骤 3:重启 MySQL 服务

修改后需重启 MySQL 服务使配置生效:
bash

 systemctl restart mysql   

三、临时解决:连接时指定字符集

如果无法修改配置文件(如无权限),可在连接 MySQL 时临时指定字符集:
bash

mysql  用户名  --default-character-setutf8mb4

连接后,也可执行以下命令临时设置字符集:
sql

 names utf8mb4

四、验证数据库 / 表字符集

若数据库或表的字符集不是 utf8mb4,即使客户端配置正确仍可能乱码。可通过以下命令检查:
sql

数据库名

表名

若字符集不是 utf8mb4,可通过以下命令修改:
sql

数据库名 utf8mb4 utf8mb4_unicode_ci

表名 utf8mb4 utf8mb4_unicode_ci

五、常见问题

  • 配置文件路径不对:可通过 mysqld --verbose --help | grep -A 1 'Default options' 查找配置文件位置。
  • 权限问题:修改 my.cnf 需要 sudo 权限,否则无法保存。
  • 客户端工具问题:若使用第三方工具(如 Navicat),需在工具中单独设置字符集为 utf8mb4

通过以上步骤,基本可以解决 Linux 下 MySQL 命令乱码的问题。核心是确保服务端、客户端、数据库 / 表的字符集统一为 utf8mb4(支持全量 Unicode 字符)。

阅读更多 >>>  Linux解锁表的命令

网站数据信息

"linux下mysql命令乱码"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:linux下mysql命令乱码的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!