要解决MySQL无法输入中文问题,需统一字符集为utf8mb4。1. 创建或修改数据库:CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 2. 表和字段设置相同编码:ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4; 3. 配置服务端my.cnf:character-set-server = utf8mb4;4. 客户端连接时执行SET NAMES 'utf8mb4'或在连接字符串中指定;5. 确保Navicat等工具连接编码为utf8mb4。五层编码一致可彻底解决中文输入问题。

MySQL无法输入中文通常是因为字符集设置不正确或连接编码未统一。解决这个问题需要从数据库、表、字段以及连接层多个方面来确保使用支持中文的字符集,比如 UTF8 或 utf8mb4。
创建数据库时要明确指定字符集为 utf8mb4,这是目前推荐支持中文和emoji的编码方式。
例如:CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
如果已有数据库,可修改其字符集:
ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
新建表时也要指定字符集:
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(100) ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
已有表可以修改:
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
编辑 MySQL 配置文件(Windows 下是 my.ini,Linux 下是 my.cnf),在 [mysqld] 段落中添加:
[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci skip-character-set-client-handshake
保存后重启 MySQL 服务使配置生效。
无论是通过命令行还是程序连接,都要确保连接时使用 UTF8 编码。
SET NAMES 'utf8mb4';
$pdo = new PDO($dsn, $user, $pass, [PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"]);
?useUnicode=true&characterEncoding=utf8mb4
如果你使用的是 Navicat、DBeaver、phpMyAdmin 等工具,确认它们当前连接的字符集是 utf8mb4。有时候工具本身显示或输入中文正常,但实际连接编码不对,也会导致插入失败或乱码。
基本上就这些。只要数据库、表、字段、服务端、客户端五者字符集统一为 utf8mb4,中文输入问题就能彻底解决。不复杂但容易忽略细节。建议新项目一律默认使用 utf8mb4。
以上就是mysql不能输入中文解决方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号