【備忘録】MySQLで文字化け(RDS)
テーブルの日本語が文字化けしてしまう
原因は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%';
show variables like 'character_set%';
「character_set_database」には「latin1」が使用されています。
これを「utf8」に変更する必要があります。
テーブルに設定されているキャラクターセットの確認
すでに作成されているテーブルにもキャラクターセットの設定が行われているようです。
以下のコマンドで確認しましょう。
show create table テーブル名;
キャラクターセットの設定変更
以下のコマンドを実行してください。
ALTER DATABASE totsuka_dev default character set utf8;
しかし、これ以降できるテーブルに対してこのキャラクターセットが適応されるので、
既存のテーブルのキャラクターセットは「latin1」のままです。。
なので、テーブルを再作成しましょう!
DBソフトには基本既存のテーブルを作成するためのSQL文をエクスポートできる機能があるので、それを利用しましょう!
(※コピーだとキャラクターセットの内容もコピーしてしまうので、一から作成する必要があります。)
今回は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;
作成したテーブルを確認してみましょう。確認方法はいろいろありますが、
今回はエクスポートの画面から確認してみます。
「CHARSET=utf8」になっていますね!
あとは既存のテーブルを削除し、新たに作成したテーブル名を既存のテーブル名に変更すればOKです!
以上、お疲れ様でした!
Author And Source
この問題について(【備忘録】MySQLで文字化け(RDS)), 我々は、より多くの情報をここで見つけました https://qiita.com/moonbass630/items/79d753ba0fd2e7f48365著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .