programing

MySQL DB(Windows 10, XAMPP CP v3.2.4)에서 키릴 데이터를 업데이트/삽입하는 방법은 무엇입니까?

padding 2023. 9. 5. 19:46
반응형

MySQL DB(Windows 10, XAMPP CP v3.2.4)에서 키릴 데이터를 업데이트/삽입하는 방법은 무엇입니까?

XAMPP 제어판 v3.2.4가 설치된 Windows 10에서 이상한 상황이 발생함

터미널 창이 실행되고 Mysql DB에 연결됩니다.

참고: 터미널 창 이전에 UTF8 인코딩을 지원하기 위해 'chcp 65001' 명령을 실행했습니다.

이제 제가 키릴 문자로 된 값으로 일부 테이블을 업데이트하려고 하면 MySQL은 닫힌 따옴표 기호가 아니라고 불평합니다.제가 키릴 입력을 영어로 바꾸면 명령어가 받아들여집니다.

MariaDB [youtube]> update episodes set name='Катя' where id=11;
    '>

새 레코드를 DB에 삽입하려고 하면 동일한 상황이 발생합니다.

MariaDB [youtube]> insert into episodes (youtube_id,series_id,season,episode,name) values (12345678904,1,0,1,'Катя');
    '>

큰따옴표를 사용할 경우 상황은 동일합니다.

MariaDB [youtube]> insert into episodes (youtube_id,series_id,season,episode,title) values (12345678904,1,0,1,"Катя");
    ">

터미널 창을 통해 작동하려면 어떤 마법의 손길이 필요합니까?

업데이트:

John은 다음의 구성 파일을 조사할 것을 제안했습니다.MariaDB위해서UTF8설정.

설정이 다음으로 변경되었지만 문제는 여전히 지속됩니다.

# The MySQL server
default-character-set=utf8mb4

[mysqld]
init-connect=\'SET NAMES utf8\'
character_set_server=utf8
collation_server=utf8_unicode_ci
skip-character-set-client-handshake
character_sets-dir="C:/bin/XAMPP/App/xampp/mysql/share/charsets"

초기 설정은 다음과 같습니다.

# The MySQL server
default-character-set=utf8mb4

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

서버 상태 리포트

MariaDB [youtube]> \s
--------------
mysql  Ver 15.1 Distrib 10.4.10-MariaDB, for Win64 (AMD64), source revision c24ec3cece6d8bf70dac7519b6fd397c464f7a82

Connection id:          17
Current database:       youtube
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.4.10-MariaDB mariadb.org binary distribution
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
TCP port:               3306
Uptime:                 11 min 12 sec

Threads: 7  Questions: 59  Slow queries: 0  Opens: 22  Flush tables: 1  Open tables: 16  Queries per second avg: 0.087
--------------

MariaDB Documentation에 옵션에 대한 참조가 있습니다.--default-character-set=name.

사용 시도--default-character-set=utf8mb4명령줄에서 터미널 클라이언트의 레코드 삽입/업데이트 동작에 영향을 주지 않았습니다.

mysql -u root -p --default-character-set=utf8mb4 youtube
....
MariaDB [youtube]> update episodes set title='Катя' where id=11;
    '>

저는 프리웨어 프로그램 하이디SQL의 복사본을 얻는 것을 강력히 추천합니다.제가 작업한 다른 모든 것에 비해 완벽하지 않고 가끔 충돌하기도 합니다.오, 이런, 내 시간에 정말 가치가 있어요.

두 번째로 다음을 사용하고 있는지 확인해야 합니다.

데이터베이스 문자 집합:utf8mb4데이터베이스 정렬:utf8mb4_unicode_520_ci

이것들은 제가 Stackoverflow 멤버 Rick James로부터 그의 웹사이트를 통해 읽은 것 중 가장 큰 UTF-8 지원을 가지고 있습니다.그는 여기 SO의 데이터베이스 슈퍼스타이기 때문에 만약 당신이 그를 고용한다면 그의 얼굴에 많은 돈을 쏟아 붓습니다.그의 사이트에는 비교 차트가 있습니다.사실 제가 마지막으로 확인한 이후로 520이 대체되었을 수도 있습니다.

데이터베이스 문자 집합을 설정/변경하려면 다음을 변경해야 합니다.my.cnfMariaDB용 구성 파일입니다. 코드 편집을 위해 메모장++을 사용하는 것이 좋습니다.이렇게 하면 새로 작성된 데이터베이스가 올바른 인코딩을 사용하지만 데이터베이스, 테이블 및 테이블 열에 대한 문자 집합과 조합을 수동으로 업데이트해야 할 수 있으므로 반드시 철저해야 합니다!

[client]
default-character-set = utf8mb4

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

이 작업을 수행하면 러시아어/그리스어/ 등과의 쿼리가 영어와 동일하게 정상적으로 작동합니다.키워드: 해야 합니다.

저는 두 가지 언어(영어와 영어가 서투름)만 말하기 때문에 확실하게 하기 위해 특정 유니코드 숫자 을 지나는 모든 문자를 인코딩합니다.공간을 조금 더 차지하지만 대부분의 언어가 정의된 후 유니코드에 언어에 대한 문자가 추가되어 언어 지원이 단편화될 수 있습니다.관심 있으시면 코드를 찾아드리겠습니다.

저는 중간 수준의 이해력을 가지고 있고 Rick James가 아닙니다. 비록 제 프로필의 사이트에 약 23개의 번역 페이지(검색 기능을 사용하고 '번역'을 검색)가 있지만, 출력을 보고 싶다면, 저는 Rick James가 아닙니다.이러한 작업을 수행한 후 데이터가 손상되는 것을 중단했습니다.이것이 도움이 되길 바랍니다!

언급URL : https://stackoverflow.com/questions/62668055/how-to-update-insert-cyrillic-data-in-mysql-db-windows-10-xampp-cp-v3-2-4

반응형