読者です 読者をやめる 読者になる 読者になる

DB 日本語対応

つまずき DB

データベースに日本語のデータを入れようとしたら、   打っても消えてしまってデータを挿入できなかった。。。




show variables like "chara%";

で、設定を見たら


+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

とでてきたので、utf8に変更したらいいのかなと思い、
調べてみたら、my.cnfをいじればいい的なこと書いてあった。


とりあえすmy.cnfはなさげだったので、/ectにmy.cnfを作って、
my.cnfの中を変更するために、

sudo vi my.cnf

(↑sudoがないとうまく保存できなくなる)

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8

を追加。(/usr/local/mysql/support-files/my-medium.cnfっていうファイルが本当は入っていて
その中身をコピペするらしいが、存在しなかったので、無視した。)


しかし、変化なし!


再起動してみようとしたら、

mysql.server start


ERROR! The server quit without updating PID file (/usr/local/var/mysql/~.local.pid).

と、エラー。




解決方法

(projectFile)/infra/docker/mariadb/conf.d/server.cnfの中を、

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
datadir=/var/lib/mysql
skip-character-set-client-handshake
character-set-server=utf8
character-set-client=utf8
init-connect = SET NAMES utf8

に変更!


show variables like "chara%";

で見てみると、

+--------------------------+----------------------------+
| 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       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

問題解決。