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.
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ữ.