Hướng dẫn how do i change mysql from utf8 to latin1? - làm cách nào để thay đổi mysql từ utf8 sang latin1?

Theo mặc định, cơ sở dữ liệu MySQL có bộ và đối chiếu ký tự Latin1. Tuy nhiên, đôi khi bạn có thể cần lưu trữ các ký tự UTF8 trong cơ sở dữ liệu MySQL. Ở đây, cách thay đổi bộ ký tự từ Latin1 sang UTF8.

Cách chuyển đổi cơ sở dữ liệu MySQL từ Latin1 sang UTF8

Dưới đây là các bước để thay đổi ký tự được đặt từ Latin1 sang UTF cho cơ sở dữ liệu MySQL.

1. Xác định bộ ký tự hiện tại

Đăng nhập vào công cụ dòng lệnh MySQL. Bạn sẽ thấy một dấu nhắc mật khẩu. Nhập mật khẩu của bạn để đăng nhập vào cơ sở dữ liệu MySQL.

$ sudo mysql -uroot -p

Chạy lệnh sau để xác định bộ ký tự hiện tại của cơ sở dữ liệu của bạn. Thay thế cơ sở dữ liệu_name bên dưới bằng tên cơ sở dữ liệu của bạn

mysql> SELECT default_character_set_name 
       FROM information_schema.SCHEMATA S 
       WHERE schema_name = "database_name";
+----------------------------+
| default_character_set_name |
+----------------------------+
| latin1                     |
+----------------------------+

Nếu bạn muốn xác định bộ ký tự cho một bảng cơ sở dữ liệu cụ thể, hãy chạy lệnh sau. Thay thế cơ sở dữ liệu_name và Table_Name bằng cơ sở dữ liệu và tên bảng của bạn tương ứng.

mysql> SELECT CCSA.character_set_name 
       FROM information_schema.TABLES T,
       information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA 
       WHERE CCSA.collation_name = T.table_collation 
       AND T.table_schema = "database_name" 
       AND T.table_name = "table_name";

Chạy lệnh sau để thay đổi bộ ký tự của cơ sở dữ liệu MySQL từ Latin1 sang UTF8. Thay thế cơ sở dữ liệu_name bằng tên cơ sở dữ liệu của bạn

Cho mysql> 5.5

mysql> ALTER DATABASE database_name CHARACTER 
       SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Cho mysql

mysql> ALTER DATABASE database_name CHARACTER 
       SET utf8 COLLATE utf8_unicode_ci;

Tiền thưởng Đọc: Cách xếp hạng phân vùng trong MySQL

Tương tự, ở đây, Lệnh để thay đổi bộ ký tự của bảng MySQL từ Latin1 sang UTF8. Thay thế table_name bằng tên bảng cơ sở dữ liệu của bạn.

Cho mysql> 5.5

mysql> ALTER TABLE table_name CONVERT TO CHARACTER 
       SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Cho mysql

mysql> ALTER TABLE table_name CONVERT TO CHARACTER 
       SET utf8 COLLATE utf8_unicode_ci;

Tiền thưởng Đọc: Cách xếp hạng phân vùng trong MySQL

Tương tự, ở đây, Lệnh để thay đổi bộ ký tự của bảng MySQL từ Latin1 sang UTF8. Thay thế table_name bằng tên bảng cơ sở dữ liệu của bạn.

  • Hy vọng, hướng dẫn trên sẽ giúp bạn thay đổi ký tự cơ sở dữ liệu được đặt thành UTF8MB4 (UTF-8).

Hướng dẫn how do i change mysql from utf8 to latin1? - làm cách nào để thay đổi mysql từ utf8 sang latin1?


Chuyển đổi từ UTF8 sang Latin1

Đăng bởi: Patrick Rey Ngày: 19 tháng 10 năm 2006 04:55 PMPatrick REY
Date: October 19, 2006 04:55PM


Tôi có hệ thống cục bộ với MySQL 4.1-9max chạy trên WinXP. Nó có một cơ sở dữ liệu với các bảng sử dụng bộ ký tự UTF8. Tôi muốn chuyển nó trên một máy chủ web từ xa, chạy MySQL 3.23, sử dụng Charset Latin1.
It has a database with tables using utf8 character set.
I want to transfer it on a remote web server, which runs mysql 3.23, using latin1 charset.

Làm thế nào để tôi làm điều này ? - Tôi đã cố gắng xuất (sử dụng phpmyadmin 2.6.1), sử dụng chế độ tương thích (MySQL323). Tôi có thể tải tệp SQL trở lại ... nhưng các điểm nhấn của Pháp (é, è, à, và nhiều hơn nữa) không được nhập khẩu tốt. 'Périodique' hóa ra 'PÃ © Riodique' ...
- I tried to export (using PHPMyAdmin 2.6.1), using compatibility mode (mysql323). I can load the sql file back... but the french accents (é, è, à, and more) are not well imported. 'Périodique' turns out to 'Périodique' ...

- Tôi đã cố gắng sửa đổi các biến thông qua lệnh latin1 tên đã đặt (trong cửa sổ phpmyadmin SQL) ... nó hoạt động ổn ... nhưng các biến không thay đổi! Dưới đây là những gì tôi có trong hệ thống cục bộ của mình: bộ ký tự / toàn cầu đặt máy khách UTF8 Latin1 Set Set Kết nối UTF8 LATIN1 SET SET DATAB Cơ sở dữ liệu Latin1 Latin1 Đặt kết quả UTF8 LATIN1 SET SET SET LATIN1 LATIN1 SET
Here is what I have in my local system :
Session / Global
character set client utf8 latin1
character set connection utf8 latin1
character set database latin1 latin1
character set results utf8 latin1
character set server latin1 latin1
character set system utf8 utf8

---- Tôi có thể thay đổi các biến đó và sử dụng phpmyadmin không? Làm sao ?? ---- Tôi có nên sử dụng một công cụ khác (mysqldump, ...) không?
---- Should I use another tool (mysqldump, ...) ?

Cảm ơn sự hỗ trợ của bạn !


Môn học

Được viết bởi

Đăng

Chuyển đổi từ UTF8 sang Latin1

Đăng bởi: Patrick Rey Ngày: 19 tháng 10 năm 2006 04:55 PM

Tôi có hệ thống cục bộ với MySQL 4.1-9max chạy trên WinXP. Nó có một cơ sở dữ liệu với các bảng sử dụng bộ ký tự UTF8. Tôi muốn chuyển nó trên một máy chủ web từ xa, chạy MySQL 3.23, sử dụng Charset Latin1.

Làm thế nào để tôi làm điều này ? - Tôi đã cố gắng xuất (sử dụng phpmyadmin 2.6.1), sử dụng chế độ tương thích (MySQL323). Tôi có thể tải tệp SQL trở lại ... nhưng các điểm nhấn của Pháp (é, è, à, và nhiều hơn nữa) không được nhập khẩu tốt. 'Périodique' hóa ra 'PÃ © Riodique' ...

Từ UTF8 đến UTF8MB4:

1.Show tất cả các ký tự mặc định cơ sở dữ liệu:

SELECT SCHEMA_NAME 'YOUR_DATABASE_NAME', 
default_character_set_name 'charset', 
DEFAULT_COLLATION_NAME 'collation' 
FROM information_schema.SCHEMATA;

2.Show Tất cả trạng thái bảng (bộ ký tự), tập trung vào cột 'đối chiếu':

use YOUR_DATABASE_NAME;    
SHOW TABLE STATUS ;

3. Chuyển đổi SQL: Chuyển đổi cơ sở dữ liệu & tất cả các bảng thành UTF8MB4, UTF8MB4_UNICODE_CI

USE information_schema;
SELECT CONCAT("ALTER DATABASE `",table_schema,"` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;") AS _sql
FROM `TABLES` WHERE table_schema LIKE "YOUR_DATABASE_NAME" AND TABLE_TYPE='BASE TABLE' GROUP BY table_schema UNION
SELECT CONCAT("ALTER TABLE `",table_schema,"`.`",table_name,"` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") AS _sql  
FROM `TABLES` WHERE table_schema LIKE "YOUR_DATABASE_NAME" AND TABLE_TYPE='BASE TABLE' GROUP BY table_schema, TABLE_NAME 
/*include all columns, commonly don't need this.*/
/*
UNION
SELECT CONCAT("ALTER TABLE `",`COLUMNS`.table_schema,"`.`",`COLUMNS`.table_name, "` CHANGE `",column_name,"` `",column_name,"` ",data_type,"(",character_maximum_length,") CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci",IF(is_nullable="YES"," NULL"," NOT NULL"),";") AS _sql 
FROM `COLUMNS` INNER JOIN `TABLES` ON `TABLES`.table_name = `COLUMNS`.table_name WHERE `COLUMNS`.table_schema like "YOUR_DATABASE_NAME" and data_type in ('varchar','char') AND TABLE_TYPE='BASE TABLE' UNION
SELECT CONCAT("ALTER TABLE `",`COLUMNS`.table_schema,"`.`",`COLUMNS`.table_name, "` CHANGE `",column_name,"` `",column_name,"` ",data_type," CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci",IF(is_nullable="YES"," NULL"," NOT NULL"),";") AS _sql 
FROM `COLUMNS` INNER JOIN `TABLES` ON `TABLES`.table_name = `COLUMNS`.table_name WHERE `COLUMNS`.table_schema like "YOUR_DATABASE_NAME" and data_type in ('text','tinytext','mediumtext','longtext') AND TABLE_TYPE='BASE TABLE';
*/

4.Run SQL được tạo ra.

5. Đổi cơ sở dữ liệu của bạn.

6.check:

mysql> SELECT default_character_set_name 
       FROM information_schema.SCHEMATA S 
       WHERE schema_name = "database_name";
+----------------------------+
| default_character_set_name |
+----------------------------+
| latin1                     |
+----------------------------+
0

Làm cách nào để thay đổi từ UTF

Tương tự, đây là lệnh thay đổi bộ ký tự của bảng MySQL từ Latin1 sang UTF8. Thay thế table_name bằng tên bảng cơ sở dữ liệu của bạn. mysql> thay đổi bảng bảng_name Chuyển đổi thành ký tự UTF8 Collate UTF8_UNICODE_CI; Hy vọng, hướng dẫn trên sẽ giúp bạn thay đổi ký tự cơ sở dữ liệu được đặt thành UTF8MB4 (UTF-8).mysql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; Hopefully, the above tutorial will help you change database character set to utf8mb4 (UTF-8).

Không UTF

Sự khác biệt giữa UTF8 và Latin1 là gì?Chúng là các mã hóa khác nhau (với một số ký tự được ánh xạ tới các chuỗi byte phổ biến, ví dụ: các ký tự ASCII và nhiều chữ cái có dấu).UTF-8 là một mã hóa Unicode với tất cả các điểm codePoint của nó;Latin1 mã hóa ít hơn 256 ký tự.UTF-8 is one encoding of Unicode with all its codepoints; Latin1 encodes less than 256 characters.

Làm cách nào để thay đổi một ký tự trong mysql?

Bạn có thể thay đổi mặc định bằng một bảng thay đổi bộ ký tự mặc định nhưng điều đó sẽ không thay đổi độ lệch của các cột hiện có.Để thay đổi mà bạn cần sử dụng cột sửa đổi bảng thay đổi.Thay đổi ký tự của một cột chỉ có nghĩa là nó sẽ có thể lưu trữ một loạt các ký tự rộng hơn.use a alter table modify column . Changing the charset of a column only means that it will be able to store a wider range of characters.

Làm cách nào để thay đổi UTF

Bước 1: Kiểm tra dữ liệu trong cột đó để đảm bảo rằng kích thước chuỗi tối đa trong cột đó là
Bước 2: Nếu Charlear Max của dữ liệu cột được lập chỉ mục
Bước 3: Sau đó, chạy truy vấn bảng thay đổi cho bảng đó một lần nữa và bảng bây giờ sẽ được chuyển đổi thành UTF8MB4 thành công ..