mysql 5.7插入中文乱码,mysql 5.7 修改my.ini文件无效解决方法

本文介绍了解决MySQL数据库插入中文数据出现乱码的方法。包括调整my.ini配置文件中的字符集参数,确保从客户端到服务器端整个流程都采用UTF-8编码,并提供了详细的步骤说明。

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

项目编码是utf-8,数据库也是utf-8但插入数据中文乱码。

1.首先使用show variables like 'character%';查看数据库输有编码正常情况下应该出character_set_filesystem外都是utf8修改my.ini(或者my-default.ini)

[client]
default-character-set=utf8


在[mysqld]中添加 character-set-server=utf8

2.使用show variables like 'character%';,所有编码除character_set_filesystem都是utf8,问题解决。


二、对于上面若修改my.ini无效则使用下面方式。

*******放心以下方式不会损坏mysql以前的数据******

*******实在不放心也可以备份*******

1.一管理员权限运行cmd,关闭数据库服务

  执行sc delete mysql(你的mysql注册服务名),打出[SC] DeleteService 成功 操作成功。

2.执行mysqld install MYSQL --defaults-file="E:\mysql5.7\my.ini"

3.重启服务,net start mysql。配置生效。


ps.mysql5.7 user表的password改为authentication_string

补充mysql5.7 解压版配置过程:(windows环境)

1. 修改配置文件添加,除上面提到的编码设置就是数据目录配置如:

basedir = E:\mysql5.7
datadir = E:\mysql5.7\data

2. 进入sql下的bin目录初始化mysql,mysqld --initialize --user=mysql --console。一定要记录下控制台输出信息在最后冒号后面的字符,那是mysql的初始密码。

3. 安装服务,mysqld install MYSQL --defaults-file="E:\mysql5.7\my.ini"

4.启动mysql 服务。net start mysql。

5. 登录mysql,mysql -u root -p 输入第二步记录的密码。

6. 修改登录密码,初始密码是必须修改的不然不能正常使用数据库。set password = password('新密码');刷新权限flush privileges

7.重新登录。


### MySQL 5.7.43 `my.ini` 配置文件示例及其参数说明 对于MySQL 5.7.43版本,在Windows环境下使用的配置文件通常是`my.ini`而非`my.cnf`。此配置文件用于定义MySQL服务启动时的各项运行参数,从而影响数据库系统的性能和稳定性。 #### 基础配置部分 ```ini [mysqld] # 设置基于安装目录的基础路径 basedir=D:\\mysql-5.7.43-winx64\\ # 数据库的数据存储位置 datadir=D:\\mysql-5.7.43-winx64\\data\\ # 日志二进制日志的位置设定 log-bin=D:\\mysql-5.7.43-winx64\\logs\\bin-log\\mysql-bin.log ``` 上述基础配置指定了MySQL实例的基本工作环境,包括软件本身所在的根目录、数据存放的具体地址以及事务安全的日志记录方式[^2]。 #### 性能优化相关设置 ```ini innodb_buffer_pool_size=1G # InnoDB缓冲池大小,建议设为物理内存的70%-80% max_connections=200 # 最大连接数,默认值可能过低 thread_cache_size=50 # 线程缓存数量,减少线程创建销毁开销 query_cache_type=0 # 关闭查询缓存功能(自MySQL 5.7起默认关闭) table_open_cache=2000 # 表打开缓存数目 tmp_table_size=64M # 内部临时表的最大尺寸 max_heap_table_size=64M # 用户创建的HEAP表最大尺寸 ``` 这些选项有助于提高MySQL处理并发请求的能力,并针对不同的应用场景做出适当调整以达到最佳性能表现[^1]。 #### 安全性和字符集支持 ```ini character-set-server=utf8mb4 # 默认字符编码采用utf8mb4全面兼容emoji表情等四字节Unicode字符 collation-server=utf8mb4_unicode_ci # 排序规则遵循unicode标准ci表示不区分大小写 secure_file_priv="D:\\mysql-5.7.43-winx64\\upload\\" # 指定可读取外部文件的安全路径 explicit_defaults_for_timestamp=true # 时间戳字段行为更严格控制 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # SQL模式增强安全性与一致性 ``` 通过合理的字符集选择能够有效防止乱码现象的发生;而严格的SQL模式则可以帮助开发者编写更加严谨可靠的SQL语句[^3]。 #### 复制与备份有关的配置项 ```ini server-id=1 # 主从复制环境中唯一标识符 expire_logs_days=10 # 自动清理超过指定天数的日志文件 sync_binlog=1 # 提高数据恢复能力的同时降低性能 gtid-mode=ON # 开启全局事务ID机制便于跨节点同步操作 enforce_gtid_consistency=true # 强制GTID的一致性约束条件 master_info_repository=TABLE # 将主服务器信息保存到表格而不是文件里 relay_log_info_repository=TABLE # 同样适用于中继日志的信息存储形式 ``` 这部分配置主要用于保障集群架构下的高效运作及灾难发生后的快速回复方案设计[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值