【비망록】MySQL로 문자화(RDS)
4818 단어 MySQLphpMyadminRDS
테이블의 일본어가 깨져 버린다.
원인은 MySQL(RDS)에 있습니다.
RDS의 파라미터 그룹에서 DB에서 이용하는 캐릭터 세트를 설정한 것 같습니다.
-character_set_client
-character_set_connection
-character_set_database
-character_set_results
-character_set_server
하지만 이미 DB로 설정된 파라미터 그룹은 AWS에서 변경할 수 없는 것 같습니다.
그래서 다음 방법으로 변경!
먼저 DB에 설정된 파라미터 확인
show variables like 'character_set%';
"character_set_database"에는 "latin1"이 사용됩니다.
이것을 "utf8"로 변경해야합니다.
테이블에 설정된 캐릭터 세트 확인
이미 작성된 테이블에도 캐릭터 세트의 설정이 이루어지고 있는 것 같습니다.
다음 명령으로 확인합시다.
show create table テーブル名;
"latin1"이 사용되고있는 것 같습니다.
캐릭터 세트 설정 변경
다음 명령을 실행합니다.
ALTER DATABASE totsuka_dev default character set utf8;
다시 확인하면 변경된 것을 알 수 있다고 생각합니다.
그러나, 이 이후 할 수 있는 테이블에 대해서 이 캐릭터 세트가 적응되기 때문에,
기존 테이블의 캐릭터 세트는 "latin1"로 남아 있습니다. .
그래서 테이블을 다시 만들자!
DB소프트웨어에는 기본 기존의 테이블을 작성하기 위한 SQL문을 export 할 수 있는 기능이 있으므로, 그것을 이용합시다!
(※카피라면 캐릭터 세트의 내용도 카피해 버리므로, 처음부터 작성할 필요가 있습니다.)
이번에는 phpMyAdmin을 사용합니다.
대상 테이블을 선택하고 내보내기 탭을 클릭합니다.
출력을 텍스트로 표시합니다.
이번에는 "구조"만 있으면 OK 이었으므로 "구조"를 선택합니다.
기존 데이터도 원한다면 "구조와 데이터"를 선택하십시오.
덧붙여서, "구조는 Create 문", "데이터는 Insert 문"으로 내보냅니다!
그리고는 실행 버튼을 클릭하는 것만!
화면에 다음과 같이 텍스트로 표시됩니다!
그리고 이것을 수정합니다.
-- テーブルの構造 `videos_search`--
CREATE TABLE IF NOT EXISTS `videos_search` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`videoId` varchar(20) DEFAULT NULL,
`channelId` varchar(30) DEFAULT NULL,
`title` varchar(250) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`publishedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
① 기존의 테이블명과 이름이 같으므로 임시 이름을 붙여 봅시다.
② 또, 마지막 행의 이하의 개소는 삭제합시다. 이미 디폴트로 「CHARSET」에 「utf8」을 설정하게 되어 있을 것이므로 괜찮습니다.
'DEFAULT CHARSET=latin1 AUTO_INCREMENT=6'
-- テーブルの構造 `videos_search`--
CREATE TABLE IF NOT EXISTS `videos_search2` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`videoId` varchar(20) DEFAULT NULL,
`channelId` varchar(30) DEFAULT NULL,
`title` varchar(250) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`publishedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
이 Create 문을 실행합시다!
작성한 테이블을 확인해 봅시다. 확인 방법은 여러 가지가 있지만,
이번에는 내보내기 화면에서 확인해 보겠습니다.
「CHARSET=utf8」이 되어 있군요!
그리고는 기존의 테이블을 삭제해, 새롭게 작성한 테이블명을 기존의 테이블명으로 변경하면 OK입니다!
이상, 수고하셨습니다!
Reference
이 문제에 관하여(【비망록】MySQL로 문자화(RDS)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/moonbass630/items/79d753ba0fd2e7f48365
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
show variables like 'character_set%';
"character_set_database"에는 "latin1"이 사용됩니다.
이것을 "utf8"로 변경해야합니다.
테이블에 설정된 캐릭터 세트 확인
이미 작성된 테이블에도 캐릭터 세트의 설정이 이루어지고 있는 것 같습니다.
다음 명령으로 확인합시다.
show create table テーブル名;
"latin1"이 사용되고있는 것 같습니다.
캐릭터 세트 설정 변경
다음 명령을 실행합니다.
ALTER DATABASE totsuka_dev default character set utf8;
다시 확인하면 변경된 것을 알 수 있다고 생각합니다.
그러나, 이 이후 할 수 있는 테이블에 대해서 이 캐릭터 세트가 적응되기 때문에,
기존 테이블의 캐릭터 세트는 "latin1"로 남아 있습니다. .
그래서 테이블을 다시 만들자!
DB소프트웨어에는 기본 기존의 테이블을 작성하기 위한 SQL문을 export 할 수 있는 기능이 있으므로, 그것을 이용합시다!
(※카피라면 캐릭터 세트의 내용도 카피해 버리므로, 처음부터 작성할 필요가 있습니다.)
이번에는 phpMyAdmin을 사용합니다.
대상 테이블을 선택하고 내보내기 탭을 클릭합니다.
출력을 텍스트로 표시합니다.
이번에는 "구조"만 있으면 OK 이었으므로 "구조"를 선택합니다.
기존 데이터도 원한다면 "구조와 데이터"를 선택하십시오.
덧붙여서, "구조는 Create 문", "데이터는 Insert 문"으로 내보냅니다!
그리고는 실행 버튼을 클릭하는 것만!
화면에 다음과 같이 텍스트로 표시됩니다!
그리고 이것을 수정합니다.
-- テーブルの構造 `videos_search`--
CREATE TABLE IF NOT EXISTS `videos_search` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`videoId` varchar(20) DEFAULT NULL,
`channelId` varchar(30) DEFAULT NULL,
`title` varchar(250) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`publishedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
① 기존의 테이블명과 이름이 같으므로 임시 이름을 붙여 봅시다.
② 또, 마지막 행의 이하의 개소는 삭제합시다. 이미 디폴트로 「CHARSET」에 「utf8」을 설정하게 되어 있을 것이므로 괜찮습니다.
'DEFAULT CHARSET=latin1 AUTO_INCREMENT=6'
-- テーブルの構造 `videos_search`--
CREATE TABLE IF NOT EXISTS `videos_search2` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`videoId` varchar(20) DEFAULT NULL,
`channelId` varchar(30) DEFAULT NULL,
`title` varchar(250) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`publishedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
이 Create 문을 실행합시다!
작성한 테이블을 확인해 봅시다. 확인 방법은 여러 가지가 있지만,
이번에는 내보내기 화면에서 확인해 보겠습니다.
「CHARSET=utf8」이 되어 있군요!
그리고는 기존의 테이블을 삭제해, 새롭게 작성한 테이블명을 기존의 테이블명으로 변경하면 OK입니다!
이상, 수고하셨습니다!
Reference
이 문제에 관하여(【비망록】MySQL로 문자화(RDS)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/moonbass630/items/79d753ba0fd2e7f48365
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
show create table テーブル名;
다음 명령을 실행합니다.
ALTER DATABASE totsuka_dev default character set utf8;
다시 확인하면 변경된 것을 알 수 있다고 생각합니다.
그러나, 이 이후 할 수 있는 테이블에 대해서 이 캐릭터 세트가 적응되기 때문에,
기존 테이블의 캐릭터 세트는 "latin1"로 남아 있습니다. .
그래서 테이블을 다시 만들자!
DB소프트웨어에는 기본 기존의 테이블을 작성하기 위한 SQL문을 export 할 수 있는 기능이 있으므로, 그것을 이용합시다!
(※카피라면 캐릭터 세트의 내용도 카피해 버리므로, 처음부터 작성할 필요가 있습니다.)
이번에는 phpMyAdmin을 사용합니다.
대상 테이블을 선택하고 내보내기 탭을 클릭합니다.
출력을 텍스트로 표시합니다.
이번에는 "구조"만 있으면 OK 이었으므로 "구조"를 선택합니다.
기존 데이터도 원한다면 "구조와 데이터"를 선택하십시오.
덧붙여서, "구조는 Create 문", "데이터는 Insert 문"으로 내보냅니다!
그리고는 실행 버튼을 클릭하는 것만!
화면에 다음과 같이 텍스트로 표시됩니다!
그리고 이것을 수정합니다.
-- テーブルの構造 `videos_search`--
CREATE TABLE IF NOT EXISTS `videos_search` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`videoId` varchar(20) DEFAULT NULL,
`channelId` varchar(30) DEFAULT NULL,
`title` varchar(250) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`publishedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
① 기존의 테이블명과 이름이 같으므로 임시 이름을 붙여 봅시다.
② 또, 마지막 행의 이하의 개소는 삭제합시다. 이미 디폴트로 「CHARSET」에 「utf8」을 설정하게 되어 있을 것이므로 괜찮습니다.
'DEFAULT CHARSET=latin1 AUTO_INCREMENT=6'
-- テーブルの構造 `videos_search`--
CREATE TABLE IF NOT EXISTS `videos_search2` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`videoId` varchar(20) DEFAULT NULL,
`channelId` varchar(30) DEFAULT NULL,
`title` varchar(250) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`publishedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
이 Create 문을 실행합시다!
작성한 테이블을 확인해 봅시다. 확인 방법은 여러 가지가 있지만,
이번에는 내보내기 화면에서 확인해 보겠습니다.
「CHARSET=utf8」이 되어 있군요!
그리고는 기존의 테이블을 삭제해, 새롭게 작성한 테이블명을 기존의 테이블명으로 변경하면 OK입니다!
이상, 수고하셨습니다!
Reference
이 문제에 관하여(【비망록】MySQL로 문자화(RDS)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/moonbass630/items/79d753ba0fd2e7f48365텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)