sourcecode

my.ini에서 character_set_database 및 collation_database를 outf8로 설정하는 방법은 무엇입니까?

codebag 2023. 10. 10. 20:17
반응형

my.ini에서 character_set_database 및 collation_database를 outf8로 설정하는 방법은 무엇입니까?

저는 이 문제에 대해 구글 검색을 많이 했습니다.요약하자면, 이것이 제가.my.ini다음과 같습니다.

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[client]
database = abcdef
user = root
password = XXXXXX
default-character-set = utf8

[mysql]
default-character-set=utf8

[mysqld]
character_set_server=utf8
max_connections = 200
init_connect='SET collation_connection = utf8_general_ci' 
init_connect='SET NAMES utf8' 

cmd를 통해 mysql에 들어가서 발행할 때:show variables like "%character%";show variables like "%collation%";, 이것이 제가 얻은 것입니다.

+--------------------------+---------------------------------+
| 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     | utf8                            |
| character_set_system     | utf8                            |
| character_sets_dir       | D:\env\MySQL5.6\share\charsets\ |
+--------------------------+---------------------------------+
8 rows in set (0.00 sec)

+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | utf8_unicode_ci   |
+----------------------+-------------------+

MySQL 서비스를 이미 다시 시작했는데 변경 방법에 대한 아이디어를 줄 수 있는 사람이 있습니까?character_set_database게다가collation_database로.utf8? 감사합니다.

이것은 사실 그 안에 있는 설정이 아닙니다.my.cnf(또는my.ini이 경우).mySQL은 데이터베이스 자체의 콜렉션(생성 시)에서 이 설정을 가져옵니다.원하는 utf8 인코딩과 함께 이 작업을 수행하려면 다음을 수행합니다.

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;

그런 다음 mysql을 다시 시작합니다(필요한 경우 cant 기억). 다음 a:

SHOW VARIABLES;

다 잘 될 겁니다, 도움이 되길 바랍니다!


사이드 노트 : 내 생각엔default-character-set는 현재(mySQL 5.5+) 더 이상 사용되지 않으며 구성 파일을 안절부절 못하게 만드는 것 같습니다.

요약합니다.

사용 가능한 문자 집합/대열 결정

SHOW CHARSET;
SHOW COLLATION;

체크 문자 세트

SHOW VARIABLES LIKE '%character%';
SHOW VARIABLES LIKE '%collation%';

set charset (configure file -> my.cnf)

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

데이터베이스/테이블 문자 집합 확인

SHOW CREATE DATABASE databasename;
SHOW CREATE TABLE tablename;

데이터베이스/테이블 문자 집합 변경:

ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

데이터베이스/테이블을 만들 때 설정:

CREATE DATABASE new_db CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
CREATE TABLE new_table (id INT) CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

참고: Mysql utf8에서 utf8 utf8mb4가 실제 utf8이 아니라고 들었습니다. 따라서, Mysql에 저장할 수 없는 특수 문자가 있다면 utf8mb4와 utf8mb4_general_ci를 사용해야 할 것입니다.

언급URL : https://stackoverflow.com/questions/22572558/how-to-set-character-set-database-and-collation-database-to-utf8-in-my-ini

반응형