MySql数据库中文问号乱码、中文记录插入的问题解决!

本文详细介绍了如何解决MySQL数据库中中文显示为问号的问题,包括全局和局部设置的方法,并推荐了可视化的数据库管理工具。

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

出现问题:新建表插入记录中文以?形式显示;

        

解决问题:

一.全局设置

    1.MySql配置文件默认文件名为my-default.ini要将文件名改为my.ini(在默认文件名my-default.ini设置是没有作用的);

    2.添加或修改my.ini配置文件内容

         [client]

         default-character-set=utf8

         [mysqld]

         character-set-server=utf8

         collation-server=utf8_general_ci

        

    3.DOS模式下关闭并重启mysql数据库服务:

               步骤一.  把原本的MySQL服务删除:mysqld  -remove  mysql;

               步骤二. 安装MySQL服务:mysqld -install mysql;

               步骤三. 启动mysql数据库服务: net start mysql;

                    (关闭mysql数据库服务: net stop mysql;)

二.局部设置

    4.输入命令mysql>SHOW VARIABLES LIKE 'character%'后显示如下图:

            

    5.插入表记录INSERT INTO student(id,name,chinese,math,English) VALUES(2,'托雷斯',120,143,55);涉及到中文的name的值‘托雷斯’出现错误提示;

            

    6.修改数据库编码为UTF8:sql>ALTER DATABASE db_name CHARACTER SET utf8;

    7.修改表编码为UTF8:sql>ALTER TABLE tab_name CHARACTER SET utf8;

    8.修改字段编码为UTF8:sql>ALTER TABLE old_name MODIFY  new_name VARCHAR(20) SET utf8;

    9.设置完成后表内的原先的记录不会有改变,添加新记录后INSERT INTO student VALUES(2,'郭奉孝',100,100,100);,中文正常显示:

        

 

   总结:个人不建议使用Windows+R输入cmd 运行进行数据库各种操作,一来可视化体验不好,二来对各种指令要求较高较多(工作量大),推荐使用可视化数据化工具如:

Navicat Premium 12(支持多数据库如:mysql/sqlserver/oracle);

HeidiSQL(MySQL图形化管理工具)

 

        

        

    

### Navicat 连接 MySQL 数据库汉字乱码解决方案 #### 1. 数据库层面的字符编码设置 在创建数据库时,需确保选择了合适的字符集和排序规则。推荐使用 `utf8` 或者更全面的 `utf8mb4` 编码[^3]。具体操作是在 Navicat 中新建数据库时,将字符集设定为 `utf8` 并选择对应的排序规则(如 `utf8_general_ci`)。这一步可以从根本上避免存储过程中出现的乱码。 #### 2. 客户端连接参数配置 当通过 Navicat 连接到 MySQL 数据库时,需要确认客户端使用的字符编码是否匹配服务器端的编码。可以通过修改连接属性中的高级选项实现这一点。例如,在 Navicat 的连接编辑窗口中找到“高级”部分,添加或调整以下参数: ```sql characterSetResults=utf8 ``` 此参数的作用是指定查询返回的结果集所采用的字符集为 UTF-8,从而防止因客户端默认编码不一致而导致的乱码现象[^2]。 #### 3. Java 应用程序与 MyBatis 配置 如果项目涉及 MyBatis 向 MySQL 插入数据,则还需要检查以下几个方面: - **IDE 和源文件编码**:开发环境(如 Eclipse、IntelliJ IDEA)以及 `.java` 文件本身的编码应统一设为 UTF-8。 - **MyBatis 配置文件**:在 MyBatis 的 XML 映射文件或其他相关配置中加入 JDBC URL 参数以强制指定字符集。例如: ```properties jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8 ``` 上述 URL 参数明确了使用 Unicode 及其具体的编码方式为 utf8,有助于减少潜在的编码冲突[^1]。 #### 4. 测试验证过程 完成以上各环节的调整之后,建议执行简单的插入和读取测试来检验效果。比如运行一段 SQL 脚本或者调用相应的 API 方法,观察实际存入的数据及其展示形式是否有异常情况发生。 ```sql INSERT INTO test_table (name) VALUES ('张三'); SELECT * FROM test_table; ``` 假如一切正常的话,“张三”的名字应该能够正确无误地被保存并呈现出来而不会变成问号或者其他奇怪符号。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值