温馨提示×

ubuntu mysql怎么改字符集

小樊
35
2026-10-21 15:32:14
栏目: 云计算

在 Ubuntu 上修改 MySQL 字符集(通常改为 utf8mb4,推荐用于完整支持中文和 emoji),可以按下面步骤来。


一、查看当前字符集

mysql -u root -p

登录后执行:

SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';

二、修改 MySQL 全局配置(推荐方式)

1. 编辑配置文件

Ubuntu 上通常是:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

(如果是 MariaDB,可能是 /etc/mysql/mariadb.conf.d/50-server.cnf)

2. 在 [mysqld] 下添加

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

3. 如果有 [client] 和 [mysql],也加上

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

4. 保存并重启 MySQL

sudo systemctl restart mysql

三、修改已有数据库和表(重要)

改配置不会自动改已有数据。

修改数据库

ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改表

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改字段(如有必要)

ALTER TABLE 表名 MODIFY 列名 VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

四、新建数据库时指定字符集

CREATE DATABASE 数据库名
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

五、常见坑提醒

  • 不要用 utf8:MySQL 的 utf8 不是真正 UTF-8(最多 3 字节)
  • 改完配置后,必须重启 MySQL
  • 已有数据乱码通常无法自动修复,需要重新导入

如果你告诉我:

  • MySQL 版本(5.7 / 8.0)
  • 是 新装 还是 已有数据要改

我可以给你更精确的命令。

0 踩