首页 > 数据库 > 数据库命令行操作时,出现乱码问题

数据库命令行操作时,出现乱码问题

时间:2023-11-07 11:36:11浏览次数:28  
标签:编码 SET name utf8mb4 数据库 乱码 命令行 table schema


<1>在命令行对数据库进行操作时,查看数据库中表的数据时,出现乱码问题。

问题截图如下:

                      数据库命令行操作时,出现乱码问题_数据库

出现这种问题的原因是:表使用的编码是utf8,而命令行使用的是GBK

解决办法如下:

一开始,以为是数据库的字符集编码出现了问题但是,修改之后查询发现还是没有作用。

                      数据库命令行操作时,出现乱码问题_MySQL_02

然后通过查找资料发现:表使用的编码是utf8,而命令行使用的是GBK

解决办法如下:

可通过输入以下的命令进行解决:

SET character_set_results=gbk;

                      数据库命令行操作时,出现乱码问题_数据库_03

输入之后,发现问题解决

                      数据库命令行操作时,出现乱码问题_MySQL_04

<2>当出现不是乱码问题不是这个原因时,可根据以下的步骤解决:

1.首先,检查MySQL客户端字符编码,目前MySQL客户端支持四种字符集:

  • – GBK
  • – GB2312
  • – GB18030
  • – UTF-8

一般建议使用UTF-8字符集

假设数据库实例是cms

ALTER DATABASE cms CHARACTER SET utf8mb4;

# 并修改表的编码

ALTER TABLE tb_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

最后,需要确保表中存储的数据正确对应字符编码,可以采用以下方法检查字段编码:

# 假设数据表名叫tbl_name

SELECT t.table_name ,t.table_collation,c.column_name, c.collation_name FROM information_schema.tables t LEFT JOIN information_schema.columns c ON t.table_schema = c.table_schema AND t.table_name = c.table_name WHERE t.table_name = ‘tb_name’ AND t.table_schema = ‘database_name’;

如果编码不一致,请用如下脚本来修改字段编码:

ALTER TABLE tb_name MODIFY field_name VARCHAR(100) CHARACTER SET utf8mb4;

标签:编码,SET,name,utf8mb4,数据库,乱码,命令行,table,schema
From: https://blog.51cto.com/u_15912723/8228678

相关文章

  • 实例讲解数据库的数据去重
    本文分享自华为云社区《GaussDB数据库SQL系列-数据去重》,作者:Gauss松鼠会小助手2。一、前言数据去重在数据库中是比较常见的操作。复杂的业务场景、多业务线的数据来源等等,都会带来重复数据的存储。本文以GaussDB数据库为实验平台,将为大家详细讲解如何去重。二、数据去重应用......
  • 数据库实验一
    补tac~/.bashrcmore~/.bashrchead-n20~/.bashrchead-n50~/.bashrc|tail-n20tail-n20~/.bashrctail-n+50~/.bashrctouch/tmp/hellols-l/tmp/hellotouch-d"5daysago"/tmp/hellols-l/tmp/hellochownroot/tmp/hellols-l/tmp/he......
  • Java虚拟机的监控及诊断工具(命令行)
    对于普通的开发人员来说,可以阅读帮助文档或者源码来对JDK的设计以及JVM的内存管理获取一定的了解,但对于线上运行的程序,如何对程序进行监控和诊断呢?比如一个程序挂了,怎么通过分析堆栈信息、GC日志、线程快照等信息来快速定位问题?JDK的大佬早就为我们考虑到这一点,所以在JDK中包含了......
  • eclipse中maven依赖的jar源码中文注释乱码解决
    通过maven下载源代码,在eclipse中浏览源代码时,发现中文注释为乱码的问题。eclipse默认编码造成的问题。可以通过以下方法解决:1.修改Eclipse中文本文件的默认编码:windows->Preferences->general->Workspace->Textfileencoding设置为UTF-82.修改JAVA源文件的默认编码:windows->P......
  • 高斯数据库HCNA之数据库管理
    一、数据库管理简介1、数据库管理1.1、数据库管理(DatabaseAdmin)数据库管理工作就是对数据库管理系统进行管理和维护的工作核心目标,保证数据库管理系统的稳定性安全性数据一致性系统的高性能数据库管理员(DatabaseAdministrator)从事管理和维护数据库管理系统......
  • openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述
    openGauss学习笔记-116openGauss数据库管理-设置数据库审计-审计概述116.1背景信息数据库安全对数据库系统来说至关重要。openGauss将用户对数据库的所有操作写入审计日志。数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内......
  • java访问数据库的步骤,把每一步骤都讲解出来
    Java访问数据库通常是通过JDBC(JavaDatabaseConnectivity)API实现的。JDBC是一个JavaAPI,可以统一地访问各种关系型数据库。使用JDBC访问数据库的步骤如下:1.加载数据库驱动首先,需要加载你要连接的数据库对应的JDBC驱动。这一步通常通过调用Class.forName()方法实现。Class.for......
  • 数据库
    DML数据操纵语言①插入数据语法insertinto<数据表名>(字段名1,字段名2,......)values(数据1,数据2,......); 实例 ②删除数据从数据表中删除满足特定条件(所有)的记录语法deletefrom<数据表名>[whereconditions(条件]; 实例 ③修改数据 对数据表中已经添加的记录......
  • linux 文件夹乱码如何重命名和删除
    当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用rm,mv等命令管理文件了但是每个文件都有一个i节点号,可以通过i节点号来管理文件。首先,要取得文件的i节点号。这个可以通过ls命令的-i选项获得得$ls-i删除:$find.-inum32983551-execrm{}\;重......
  • 如何通过java程序访问数据库,举个简单的例子,提供执行过程
    要通过Java程序访问数据库,你需要使用JDBC(JavaDatabaseConnectivity)API,它是一个用于执行SQL语句的JavaAPI。以下是使用JDBC访问数据库的基本步骤,以及一个简单的示例,该示例连接到数据库并执行一个查询。步骤:加载数据库驱动:这是告诉JVM使用哪个数据库驱动。建立连接:使用数据库......