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

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

新規登録して質問してみよう
ただいま回答率
85.31%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MySQL

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

Q&A

解決済

1回答

2222閲覧

【DockerでMySQL環境構築】 Fatal error: Please read "Security"~ エラー

退会済みユーザー

退会済みユーザー

総合スコア0

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MySQL

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

0グッド

0クリップ

投稿2022/02/10 13:19

前提・実現したいこと

・DockerでMySQLを構築したい。(構築のみであればできています)
・コンテナ起動時にコマンドを実行したい(★ここができない)

発生している問題・エラーメッセージ

Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

該当のソースコード

yaml

1version: '3' 2 3services: 4 db: 5 image: mysql:8 6 container_name: mysql 7 restart: always 8 environment: 9 MYSQL_ROOT_PASSWORD: ${ROOT_PASS} 10 MYSQL_DATABASE: ${DB_NAME} 11 MYSQL_USER: ${DB_USER} 12 MYSQL_PASSWORD: ${DB_PASS} 13 TZ: ${TZ} 14 ports: 15 - ${DB_PORT}:3306 16 tmpfs: 17 - /var/lib/mysql 18 volumes: 19 - ./startup.sh:/startup.sh 20 - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf 21 command: "/startup.sh" # ★コマンド実行を行わなければ、コンテナは起動します

startup.sh

1mysqld 2echo "test" # ★以降にいろいろコマンドを実行する想定

試したこと

①ymlファイルのcommand部分を

command: "mysqld"

の場合は、起動します

②以下のようにすると同じエラーが発生します

command: bash -c "mysqld && echo test"

DockerfileのCMDのほうで実行させてみても同様でした

Dockefile

1FROM mysql:8 2 3EXPOSE 3306 4 5ADD ./conf/my.cnf /etc/mysql/conf.d/my.cnf 6COPY ./conf/start.sh /start.sh 7RUN chmod 744 /start.sh 8 9CMD ["/start.sh"]

④オプション付けてみた
以下のようにしても同じでした。

mysqld --user=root

⑤my.cnf修正してみる
https://qiita.com/yosida001/items/f7acb893843c550e0074
で書いてあった
my.cnfにuser=mysql を追加して実行すると

mysql | 2022-02-10T13:14:11.672889Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory. mysql | 2022-02-10T13:14:11.673085Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. mysql | 2022-02-10T13:14:11.673148Z 0 [ERROR] [MY-010119] [Server] Aborting

と今度は別のエラーになってしまいました。

他に試せることありましたらお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

/docker-entrypoint-initdb.d
.sh.sqlを配置すれば、コンテナ初回起動時に実行してくれるので、commandをいじることなく目的を実現できる。

https://github.com/docker-library/docs/tree/master/mysql#initializing-a-fresh-instance

投稿2022/02/12 05:45

編集2022/02/12 05:46
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問