Swisscom Cloud 내의 mariadb의 기본 서버 문자는 무엇이며 어떻게 변경할 수 있습니까?
Swisscom Cloud MariaDB Service에 대한 설명 요청입니다.이것은 일반적인 MariaDB 기본 문자에 관한 것이 아닙니다.
- Swisscom Cloud의 MariaDB Service 기본값이 무엇인지 알고 싶습니다.
- 실제로 그런다고 가정하면
latin1이 기본값을 변경할 수 있는지 알고 싶습니다.utf-8또는 보다 정확하게utf8mb4의 경우와 같습니다.
질문의 주된 이유는 쉽게 재 Import할 수 있는 백업을 생성하는 데 문제가 있으며, 추출할 때 크기가 크게 달라지기 때문입니다.mysqldump ... -r backup.sql통한 수출과 비교해서Sequel Pro.
도구를 사용하지 않습니다.Sequel Pro.
레거시 MariaDB/Galera 클러스터는latin1기본 문자 집합으로 설정합니다.이 디폴트 설정은 업스트림 MariaDB 개발자에 의한 것입니다.대부분의 개발자와 DBA는 이 결정을 좋아하지 않습니다.
여기 있습니다CREATE TABLE구문( 참조)COLLATE그리고.CHARACTER SET) :
CREATE TABLE tbl_name (column_list)
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]]
서버 설정(이 명령문은 모든 고객이 실행할 수 있습니다.관리자 권한은 필요 없습니다.
MariaDB [(none)]> show global variables like 'character_set%';
+--------------------------+-------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mariadb-galera/charsets/ |
+--------------------------+-------------------------------------+
8 rows in set (0.00 sec)
기존 MariaDB를 계속 사용하는 경우 서비스 인스턴스를 빨리 마이그레이션하십시오.레거시 클러스터는 1~2일 후에 읽기 전용이 됩니다.
완전히 새로운 MariaDB 서비스가 준비되어 있습니다.MariaDB 버전 10 등 많은 개선 사항이 포함되어 있으며 가능한 한 빨리 업그레이드할 것을 권장합니다.
이 단계별 가이드는 2017년 8월 16일에 작성되었습니다.
새 클러스터는 더 나은 기본 설정을 사용합니다.
MariaDB [(none)]> show global variables like 'character_set%';
+--------------------------+------------------------------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /var/vcap/data/packages/mariadb/95a1896c4bcdccb4e1abd81b7d00eb33aedb0da0/share/charsets/ |
+--------------------------+------------------------------------------------------------------------------------------+
8 rows in set (0.01 sec)
데이터를 새 클러스터로 가져오기 전에 문자 집합과 데이터 정렬을 변경하려는 경우.
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
이런 거 여러 번 했어요.이 작업은 2만 이상의 레코드로 진행해서는 안 된다는 점에 유의하시기 바랍니다.
DDL 변경을 장기간 실행해야 할 경우 Swisscom Application Cloud 지원팀에 문의하십시오(예:
ALTER TABLE수많은 기록과 함께)DDL을 장시간 실행하면 클러스터의 모든 고객이 중단됩니다.
이것은 두 가지 다른 점을 보여주기 위한 것이다.ALTERs; 1개는 아무 쓸모도 없고, 1개는 당신이 원하는 것을 한다.
-- '잘못된' ALTER를 시도합니다.
DROP TABLE IF EXISTS atc;
CREATE TABLE atc ( c VARCHAR(11)) CHARACTER SET latin1 ;
INSERT INTO atc (c) VALUES ('ÃÔäô');
SHOW CREATE TABLE atc\G
SELECT c, HEX(c) FROM atc; -- note the latin1 encoding
ALTER TABLE atc CHARACTER SET utf8;
SHOW CREATE TABLE atc\G -- the column stays latin1, overriding the table
SELECT c, HEX(c) FROM atc; -- still latin1 encoding
mysql>
mysql> -- Try the 'wrong' ALTER:
mysql>
mysql> DROP TABLE IF EXISTS atc;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE atc ( c VARCHAR(11)) CHARACTER SET latin1 ;
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO atc (c) VALUES ('ÃÔäô');
Query OK, 1 row affected (0.00 sec)
mysql> SHOW CREATE TABLE atc\G
*************************** 1. row ***************************
Table: atc
Create Table: CREATE TABLE `atc` (
`c` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql> SELECT c, HEX(c) FROM atc; -- note the latin1 encoding
+----------+----------+
| c | HEX(c) |
+----------+----------+
| ÃÔäô | C3D4E4F4 |
+----------+----------+
1 row in set (0.00 sec)
mysql> ALTER TABLE atc CHARACTER SET utf8;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SHOW CREATE TABLE atc\G -- the column stays latin1, overriding the table
*************************** 1. row ***************************
Table: atc
Create Table: CREATE TABLE `atc` (
`c` varchar(11) CHARACTER SET latin1 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql> SELECT c, HEX(c) FROM atc; -- still latin1 encoding
+----------+----------+
| c | HEX(c) |
+----------+----------+
| ÃÔäô | C3D4E4F4 |
+----------+----------+
1 row in set (0.00 sec)
-- '올바른' 방법을 시도합니다.
DROP TABLE IF EXISTS atc;
CREATE TABLE atc ( c VARCHAR(11)) CHARACTER SET latin1 ;
INSERT INTO atc (c) VALUES ('ÃÔäô');
SHOW CREATE TABLE atc\G
SELECT c, HEX(c) FROM atc; -- note the latin1 encoding
ALTER TABLE atc CONVERT TO CHARACTER SET utf8;
SHOW CREATE TABLE atc\G -- column and table are utf8
SELECT c, HEX(c) FROM atc; -- now utf8
mysql>
mysql> -- Try the 'right' way:
mysql>
mysql> DROP TABLE IF EXISTS atc;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE atc ( c VARCHAR(11)) CHARACTER SET latin1 ;
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO atc (c) VALUES ('ÃÔäô');
Query OK, 1 row affected (0.00 sec)
mysql> SHOW CREATE TABLE atc\G
*************************** 1. row ***************************
Table: atc
Create Table: CREATE TABLE `atc` (
`c` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql> SELECT c, HEX(c) FROM atc; -- note the latin1 encoding
+----------+----------+
| c | HEX(c) |
+----------+----------+
| ÃÔäô | C3D4E4F4 |
+----------+----------+
1 row in set (0.00 sec)
mysql> ALTER TABLE atc CONVERT TO CHARACTER SET utf8;
Query OK, 1 row affected (0.03 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> SHOW CREATE TABLE atc\G -- column and table are utf8
*************************** 1. row ***************************
Table: atc
Create Table: CREATE TABLE `atc` (
`c` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql> SELECT c, HEX(c) FROM atc; -- now utf8
+----------+------------------+
| c | HEX(c) |
+----------+------------------+
| ÃÔäô | C383C394C3A4C3B4 |
+----------+------------------+
1 row in set (0.00 sec)
mysql>
언급URL : https://stackoverflow.com/questions/48583756/what-is-the-default-server-characterset-in-mariadb-inside-the-swisscom-cloud-and
'source' 카테고리의 다른 글
| JavaScript를 사용하여 어레이를 삽입하시겠습니까? (0) | 2022.11.24 |
|---|---|
| Java Timestamp - 2007/09/23 날짜의 타임스탬프를 작성하려면 어떻게 해야 합니까? (0) | 2022.11.24 |
| ES6 모듈에서 여러 클래스 내보내기 (0) | 2022.11.24 |
| 여러 개의 새 기둥을 만들기 위해 기둥에 판다 기능을 적용하시겠습니까? (0) | 2022.11.24 |
| Java에서 현재 작업 디렉토리를 가져오려면 어떻게 해야 합니까? (0) | 2022.11.24 |