質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

Docker Laravel MySQL でseederを実行すると文字化けが起こってしまう

nanami0221
nanami0221

総合スコア18

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

1回答

0評価

0クリップ

1468閲覧

投稿2021/05/04 06:21

MySQLの文字化けが直らない

タイトル通りです。
Docker内のDBに接続して、seederを実行しているのですが、MySQL内を覗くと文字化けが起こってしまいます。
お力添えいただけると幸いです。

DBのVariable_name

以下3点が正しいため、設定は問題ないと認識しております。

  • character_set_database
  • character_set_server
  • character_set_system
+--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | utf8mb4 | | character_set_system | utf8mb3 | | character_sets_dir | /usr/share/mysql-8.0/charsets/ | +--------------------------+--------------------------------+
mysql> select * from users; +----+-----------------------------------------+-----------+------------+------------------------------+---------------------+---------------------+ | id | company | last_name | first_name | email | created_at | updated_at | +----+-----------------------------------------+-----------+------------+------------------------------+---------------------+---------------------+ | 1 | ????????????????????????????? | ?? ? | ?? ?? | hiroshi.kato@example.net | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 2 | ???????????????????????????? | ?? ??? | ?? ?? | tsuda.kana@example.com | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 3 | ??????????????????????????????????? | ?? ?? | ?? ?? | tsuda.yosuke@example.net | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 4 | ???????????????????????????????????? | ?? ?? | ?? ?? | wakamatsu.hanako@example.org | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 5 | ?????????????????????????????? | ?? ?? | ?? ? | eyamamoto@example.net | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 6 | ???????????????????? | ?? ? | ? ?? | koizumi.satomi@example.net | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 7 | ??????????????????? | ?? ?? | ?? ?? | kazuya03@example.org | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 8 | ????????????????????????? | ??? ?? | ?? ?? | thirokawa@example.net | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 9 | ?????????????????????????????? | ?? ?? | ?? ?? | sayuri.koizumi@example.com | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | | 10 | ??????????????????????????????????????? | ?? ??? | ?? ?? | tsuda.jun@example.net | 2021-05-04 06:07:19 | 2021-05-04 06:07:19 | +----+-----------------------------------------+-----------+------------+------------------------------+---------------------+---------------------+

コード一覧

該当しそうな箇所の、以下3つのプログラムを添付させていただきます。

  • /app/docker-compose.yml
  • /app/infra/mysql/my.cnf
  • /app/backend/config/database.php
// 格納場所:/app/docker-compose.yml version: "3.9" services: app: build: ./infra/php volumes: - ./backend:/work web: image: nginx:1.20-alpine ports: - 10080:80 volumes: - ./backend:/work - ./infra/nginx/default.conf:/etc/nginx/conf.d/default.conf working_dir: /work db: build: ./infra/mysql volumes: - db-store:/var/lib/mysql volumes: db-store:
# 格納場所:/app/infra/mysql/my.cnf [mysqld] # character set / collation character_set_client = utf8mb4 collation_server = utf8mb4_unicode_ci # timezone default-time-zone = SYSTEM log_timestamps = SYSTEM # Error Log log-error = mysql-error.log # Slow Query Log slow_query_log = 1 slow_query_log_file = mysql-slow.log long_query_time = 1.0 log_queries_not_using_indexes = 0 # General Log general_log = 1 general_log_file = mysql-general.log [mysql] default-character-set = utf8mb4 [client] default-character-set = utf8mb4
// 格納場所:/app/backend/config/database.php 'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [],

試したこと

1.Dockerを再起動してseederを実行

docker-compose down --rmi all --volumes --remove-orphans docker-compose up docker-compose exec app bash php artisan migrate:fresh --seed
2.DBを削除

drop databaseで削除し、その後1を再度行いました。

factory と seederも一応

# UserFactory return [ 'company' => $this->faker->realText(rand(15, 40)), 'last_name' => $this->faker->name(), 'first_name' => $this->faker->name(), 'email' => $this->faker->unique()->safeEmail(), 'created_at' => now(), 'updated_at' => now(), ];
// UserSeeder public function run() { User::factory()->count(10)->create(); }

お力添えいただけると幸いです。
どうぞ、よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

ucan-lab

2021/05/04 06:54

./infra/mysql/Dockerfile の中身はどうなってますか?

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです