如何在 Ubuntu 上为 MySql 设置 Utf-8?

问题描述 投票:0回答:1

我有下一张桌子:

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

我使用 JDBC 驱动程序。具有必须支持 utf8 的文本字段的表是这样创建的:

jdbcTemplate.execute(
"CREATE TABLE IF NOT EXISTS users"+
"(id BIGINT NOT NULL AUTO_INCREMENT,"+
  "name VARCHAR(45),"+
  "................."+
  "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");

在本地机器上,一切正常。但在 Ubuntu 服务器上,我收到“??????”而是 UTF-8 中的普通名称。如何修复它?该应用程序通过 Nginx 运行。也许这就是问题所在?

mysql ubuntu jdbc
1个回答
0
投票

向文件添加条目

/etc/mysql/my.cnf

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4

这对我有用。 我通过终端创建了数据库。

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

我认为这在 JDBC 中是不必要的 -> “ENGINE=InnoDB DEFAULT CHARSET=utf8mb4”

© www.soinside.com 2019 - 2024. All rights reserved.