3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MYSQLでのいろいろなこと

Last updated at Posted at 2016-07-18

MYSQLを利用していて主に文字コードの問題が出ることがあって、それを解決、もしくは文字化けなどが起きなようにするためのメモ。

サーバの文字コード設定を見る

サーバの文字コードの状態を見るには以下のコマンドを実行する。

show variables like "chara%";

何も設定していないと以下のような状態みたい。

+--------------------------+----------------------------+
| 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     | latin1                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

これで、character_set_databasecharacter_set_serverがともにlatin1になっている。このため日本語などを使うと文字化けを起こす。

サーバでの設定

my.cnfで設定する。

my.cnf
[mysqld_safe]
default-character-set = utf8
  :
[mysqld]
  :
character-set-server = utf8

これでサーバを再起動する。

ただ、[mysqld]default-character-set = utf8 を設定するとサーバが起動したない。

DATABASEやTABLEの文字コードを変更する場合。

サーバ設定を変更する前にDATABASEやTABLEを作成すると文字コード設定がlatin1のままだったりする。dropして設定し直すということもできるが、DATABASEやTABLEだけ変更することができる。

DATABASEを変更する場合は以下のようにする。

alter database sampledb character set utf8;

TABLEの文字コードを変更する場合は以下のようにする。

alter table character set utf8;

DATABASEやTABLEの文字コードを確認するには以下のコマンドを実行する。

show create database sampledb;
show create table sampletable;

OpenOffice/LibreOfficeと接続する場合

Connecterを利用すれば良いのだけれど、文字コードはやはり注意する必要があるようだ。特にWindowsでOpenOfficeを使用した場合utf8ではうまくいかなかった。正確にはサーバ側はutf8で統一して問題はないのだけれと、Windows側でutf8をセットしても表示はできても、入力時に文字化けを起こしたりした。解決方法は以下の通り。

ODBC設定側のConnecterタブにあるCharacter setにcp932をセット。ついで、OpenOffice側のデータベースプロパティで文字コードにShift-JISをセットする。以上で回避できた。
これをどちらにもutf8をセットしてもうまく動作はしてくれなかった。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?