前提・実現したいこと
dbを日本語対応させたいと思っています。
文字化けはなく、ただ日本語が打てない状況です。(打つと消えてしまう)
日本語対応のutf8に変更したいと思っていますが、つまずいてしまいました。
解決するために1日半かかってしまいました..備忘録のためにここにログを残します。
この状態だとの日本語に対応できていません。
php
1docker-compose exec mysql bash 2mysql -u root -p 3mysql> SHOW VARIABLES LIKE '%char%'; 4+--------------------------+----------------------------+ 5| Variable_name | Value | 6+--------------------------+----------------------------+ 7| character_set_client | latin1 | 8| character_set_connection | latin1 | 9| character_set_database | latin1 | 10| character_set_filesystem | binary | 11| character_set_results | latin1 | 12| character_set_server | latin1 | 13| character_set_system | utf8 | 14| character_sets_dir | /usr/share/mysql/charsets/ | 15+--------------------------+----------------------------+ 168 rows in set (0.09 sec) 17
php
1# この状態を目指します 2mysql> SHOW VARIABLES LIKE '%char%'; 3+--------------------------+----------------------------+ 4| Variable_name | Value | 5+--------------------------+----------------------------+ 6| character_set_client | utf8 | 7| character_set_connection | utf8 | 8| character_set_database | utf8 | 9| character_set_filesystem | binary | 10| character_set_results | utf8 | 11| character_set_server | utf8 | 12| character_set_system | utf8 | 13| character_sets_dir | /usr/share/mysql/charsets/ | 14+--------------------------+----------------------------+ 158 rows in set (0.02 sec) 16
発生している問題
php
1# mysqlコンテナに入る 2[mac]$ docker-compose exec mysql bash 3root@5f:/ sudo vi/etc/my.cnf 4bash: sudo: command not found (なぜ) 5 6# ファイルの場所について調べる。 7root@5f28:/ mysql --help or mysql --help | grep my.cnf 8 order of preference, my.cnf, $MYSQL_TCP_PORT, 9/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 10
解決策
「docker-compose.yml」のdbの「volumes:」に- 「./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf」追記させる。 ←これが大切!
私の場合、dockerの環境構築の際にやる必要があった。
php
1docker-compose exec mysql bash 2root@5f: vi /etc/my.cnf 3 4[/etc/my.cnf] 5# 私の場合は、中身にないまっさらな状態でした。 6[mysqld] 7character-set-server=utf8 8 9[mysql] 10default-character-set=utf8 11 12:wq!(保存するコマンドを打ち込み終了) 13 14root@5f: /etc/init.d/mysql restart 15#[info] Stopping MySQL Community Server 5.7.33. 16#..% 17docker-compose up -d 18#Starting laravel-docker-workspace_mysql_1 ... done 19 20# 設定ができているか確認する作業 21docker-compose exec mysql bash 22mysql -u root -p 23# Enter password: 24mysql> mysql -u root -p 25mysql> SHOW VARIABLES LIKE '%char%';
参考記事
https://runble1.com/mysql-mycnf/
https://kitsune.blog/mysql-login
補足情報(FW/ツールのバージョンなど)
Laravel Framework 5.8.38
docker
mac OS Catalina 10.15.7
mysql Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using EditLine wrapper
mysqld Ver 5.7.33 for Linux on x86_64 (MySQL Community Server (GPL))
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/11 23:19
2021/03/12 01:36
2021/03/12 14:58 編集
2021/03/12 15:04
2021/03/12 15:07
2021/03/12 15:33
2021/03/13 09:44 編集
2021/03/13 01:16