Hướng Dẫn Đặt Charset Mặc Định cho MySQL thành utf8mb4-unicode-ci

MySQL là một hệ quản trị cơ sở dữ liệu mạnh mẽ và phổ biến, thường được sử dụng trong các ứng dụng web và phần mềm. Khi làm việc với MySQL, việc đặt charset mặc định là rất quan trọng để đảm bảo hỗ trợ đầy đủ cho các ngôn ngữ và ký tự đa byte như tiếng Việt, tiếng Nhật, tiếng Trung, vv. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách đặt charset mặc định cho MySQL thành utf8mb4-unicode-ci.

Hướng Dẫn Đặt Charset Mặc Định cho MySQL thành utf8mb4-unicode-ci

Bước 1: Kiểm Tra Charset Hiện Tại

Trước khi thay đổi charset, chúng ta nên kiểm tra charset hiện tại của cơ sở dữ liệu MySQL. Bạn có thể sử dụng lệnh sau trong MySQL Command Line:

SHOW VARIABLES LIKE 'character_set_database';
SHOW VARIABLES LIKE 'collation_database';

Để hot set chúng ta có thể chạy lệnh sau, lưu ý lệnh này khi khởi động lại service mysql thì sẽ bị reset về mặc định

ALTER DATABASE your_database_name
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

Chạy lại lệnh trên show variable để kiểm ra lại cấu hình.

Nếu muốn set mặc định và không bị thay đổi khi khởi động lại máy chủ hoặc service thì chúng ta làm theo các bước 2 và 3 bên dưới.

Bước 2: Sửa file cấu hình config của MySQL

Mặc định file cấu hình cho client không có nên ta phải tạo mới một file trong conf.d

2.1 Thêm vào client

Gõ lệnh:

nano /etc/mysql/conf.d/client.cnf

Thêm đoạn sau

[client]
default-character-set=utf8mb4

Lưu lại file


2.2 Sửa file mysql.cnf

Mở file: 

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

Thêm vào đoạn sau:

[mysql]
default-character-set=utf8mb4

Lưu lại file


2.3 Sửa file mysqld.cnf
Mở file: 

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

 
Thêm đoạn sau:

[mysqld]
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4

Lưu lại và chạy lệnh sau để khởi động lại MySQL Server

systemctl restart mysql
hoặc
service mysql restart

Lưu lại file

Bước 3: Kiểm Tra lại Charset

SHOW VARIABLES LIKE 'character_set_database';
SHOW VARIABLES LIKE 'collation_database';

Nếu mọi thứ đều đúng, charset mặc định cho MySQL của bạn sẽ là utf8mb4 với collation là utf8mb4_unicode_ci.

Nhớ rằng việc cấu hình charset phải được thực hiện cẩn thận để tránh các vấn đề liên quan đến ký tự khi làm việc với dữ liệu đa ngôn ngữ.