LoginSignup
1
0

とりあえずDockerコンテナでMySQLサーバーを立ち上げてクライアントで接続する方法

Last updated at Posted at 2024-03-21

やりたいこと

MySQL8を簡単に立ち上げて動作確認をできる方法を作りたい。

方法

  • 以下のファイルを適当なディレクトリーに作成
  • 変数と設定ファイルを変更(【変更対象】と明記した部分)
  • bash start_mysql.shで起動
start_mysql.sh
# 【変更対象】
# 各種変数を設定
dir_name=$RANDOM # 一時ディレクトリー用のディレクトリー名。MySQLの設定ファイルを入れる
conf_dir_path=/tmp/docker/mysql/${dir_name} # とりあえずtmpに作る
conf_file_path=${conf_dir_path}/mysql.cnf # 設定ファイルのパス
local_mnt_dir=/path/to/work_dir/20240320 # マウントするディレクトリー。コンテナ上からアクセスしたいファイルを置いたディレクトリー


# 【変更対象】
# 設定ファイルの準備(ここで必要な設定を読み込ませる。以下の設定ファイルは例なので必要な設定を追加する)
mkdir -p ${conf_dir_path}
cat > ${conf_file_path} <<EOF 
[mysqld]
character-set-server=utf8
local-infile=1 

[mysql]
local-infile=1 
EOF

# コンテナが残っていたら消す
docker rm -f some-mysql


# コンフィグを読み込み、ローカルディレクトリーをマウントし、dockerコンテナを起動する
docker run -v ${conf_dir_path}:/etc/mysql/conf.d -v ${local_mnt_dir}:/tmp/tmp_date --name some-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql

# コンテナが起動しきるまで待つ。10秒は適当なので短くてもよいかもしれない
sleep_seconds=20
echo "waiting for mysql to start up (for ${sleep_seconds} seconds)"
sleep ${sleep_seconds}

# mysqlクライアントでログイン
docker exec -it some-mysql mysql -ppassword -h 127.0.0.1

# 終わったらコンテナを削除する。
docker rm -f some-mysql
1
0
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
1
0