All Products
Search
Document Center

ApsaraDB RDS:Set karakter untuk ApsaraDB RDS for MySQL

Last Updated:Jun 21, 2026

Konvensi penamaan aturan pengurutan

Nama aturan pengurutan (collation) diawali dengan nama set karakter yang sesuai dan diakhiri dengan akhiran: _ci untuk case-insensitive, _cs untuk case-sensitive, atau _bin untuk perbandingan biner berdasarkan nilai kode karakter.

Sebagai contoh, jika collation_connection untuk suatu sesi diatur ke utf8_general_ci, karakter 'a' dan 'A' dianggap setara. Namun, jika diatur ke utf8_bin, 'a' dan 'A' tidak setara.

(xxx.mysql.rds.aliyuncs.com) [xxx]> show variables like 'coll%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8_general_ci    |
| collation_database   | utf8mb4_general_ci |
| collation_server     | utf8mb4_general_ci |
+----------------------+--------------------+
3 rows in set (0.00 sec)
(xxx.mysql.rds.aliyuncs.com) [xxx]> select count(*)  from t where 'a' = 'A';
+----------+
| count(*) |
+----------+
|       16 |
+----------+
1 row in set (0.00 sec)
(xxx.mysql.rds.aliyuncs.com) [xxx]> set collation_connection='utf8_bin';
Query OK, 0 rows affected (0.00 sec)
(xxx.mysql.rds.aliyuncs.com) [xxx]> show variables like 'coll%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8_bin           |
| collation_database   | utf8mb4_general_ci |
| collation_server     | utf8mb4_general_ci |
+----------------------+--------------------+
3 rows in set (0.00 sec)
(xxx.mysql.rds.aliyuncs.com) [xxx]> select count(*)  from t where 'a' = 'A';
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

Perintah MySQL untuk set karakter

show global variables like '%char%';    # Lihat parameter set karakter untuk instans RDS.
show global variables like 'coll%';     # Lihat parameter aturan pengurutan untuk session saat ini.
show character set;                     # Lihat set karakter yang didukung oleh instans.
show collation;                         # Lihat aturan pengurutan yang didukung oleh instans.
show create table table_name \G         # Lihat pengaturan set karakter untuk suatu tabel.
show create database database_name \G   # Lihat pengaturan set karakter untuk suatu database.
show create procedure procedure_name \G # Lihat pengaturan set karakter untuk suatu prosedur tersimpan.
show procedure status \G                # Lihat pengaturan set karakter untuk suatu prosedur tersimpan.
alter database db_name default charset utf8;  # Ubah set karakter suatu database.
create database db_name character set utf8;   # Tentukan set karakter saat membuat database.
alter table tab_name default charset utf8 collate utf8_general_ci;   # Ubah set karakter dan aturan pengurutan untuk suatu tabel.

Sebagai contoh, output perintah SHOW CREATE DATABASE mencakup DEFAULT CHARACTER SET utf8, yang menunjukkan bahwa set karakter default database tersebut adalah utf8.

mysql> show create database xxx;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| xxx      | CREATE DATABASE xxx /*!40100 DEFAULT CHARACTER SET utf8 */     |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)

Mengubah character_set_server di Konsol

Penting

Mengubah parameter character_set_server memerlukan restart instans. Lakukan operasi ini pada jam sepi untuk meminimalkan dampak.

Prosedur

  1. Masuk ke Konsol ApsaraDB RDS.

  2. Di pojok kiri atas halaman, pilih wilayah tempat instans berada.

  3. Temukan instans target dan klik ID-nya.

  4. Di panel navigasi sebelah kiri, klik Parameters.

  5. Pada tab Editable Parameters, temukan parameter character_set_server. Klik ikon edit di sampingnya, atur nilainya ke set karakter target Anda (misalnya, utf8), lalu klik OK.

  6. Di pojok kanan atas, klik Apply Changes. Pada kotak dialog konfirmasi yang muncul, klik OK. Instans kemudian akan melakukan restart.

    Catatan

    Untuk instans dengan akun istimewa, perubahan ini hanya berlaku untuk database yang baru dibuat dan tidak memengaruhi database yang sudah ada.

Mengubah set karakter menggunakan Pernyataan SQL

Sintaks:

# Untuk mengubah database
ALTER DATABASE <database_name> CHARACTER SET <character_set_name> COLLATE <collation_name>;
# Untuk mengubah tabel
ALTER TABLE <table_name> CONVERT TO CHARACTER SET <character_set_name> COLLATE <collation_name>;
# Untuk mengubah kolom
ALTER TABLE <table_name> MODIFY <column_name> <data_type> CHARACTER SET <character_set_name> COLLATE <collation_name>;

Contoh: Pernyataan SQL berikut menunjukkan cara mengubah set karakter menjadi utf8mb4 untuk suatu database, tabel, dan kolom:

alter database dbsdq character set utf8mb4 collate utf8mb4_unicode_ci;
use dbsdq;
alter table tt2 convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table tt2 modify c2  varchar(10) character set utf8mb4 collate utf8mb4_unicode_ci;
Catatan
  • Saat Anda mengubah kolom, semua baris yang ada di kolom tersebut langsung dikonversi ke set karakter baru.

  • Pernyataan ALTER TABLE menerapkan kunci metadata pada tabel.

  • Untuk menggunakan set karakter selain default, Anda harus secara eksplisit menentukannya untuk suatu objek, seperti database, tabel, atau kolom. MySQL menerapkan pengaturan set karakter pada empat tingkat: server, database, tabel, dan kolom. Setiap tingkat mewarisi nilai default dari tingkat di atasnya kecuali ditentukan lain. Untuk memverifikasi set karakter kolom dalam suatu tabel, jalankan perintah SHOW CREATE TABLE tableName; atau SHOW FULL FIELDS FROM tableName;.