5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MySQL の Docker コンテナで実行した SQL の履歴を保持する

Posted at

MySQL クライアントの mysql コマンドで実行した SQL は、~/.mysql_hisotry というファイルに保存されるのですが、docker-compose down とかしてコンテナを削除すると、当然このファイルも消えてしまい、履歴が消えてしまいます。
これでは不便なので、ホスト側にファイルを書き込むようにして、毎回これをマウントする方法を考えました。

まずホスト側に .mysql_history を保存するディレクトリを作ります。
名前や場所はなんでも構いません。

$ mkdir -p docker/mysql/history

次にこれをマウントし、環境変数 MYSQL_HISTFILE.mysql_history の保存先を変更します。
マウント先もファイル名も、MYSQL_HISTFILE でパスさえ指定できれば、どこでも構いません。

$ docker run --rm -e MYSQL_HISTFILE=/root/.config/mysql/.mysql_hisotry -v ${PWD}/docker/mysql/history:/root/.config/mysql mysql

docker-compose.yml の場合はこんな感じ。

version: '3'
services:
  mysql:
    container_name: mysql
    image: mysql
    restart: always
    volumes:
      - ./docker/mysql/data:/var/lib/mysql
      - ./docker/mysql/history:/root/.config/mysql  # ← これと
    environment:
      MYSQL_HISTFILE: /root/.config/mysql/.mysql_hisotry  # ← これ

やってみると簡単だけど、ググってもあまり情報が見付からなかったのでメモでした。

5
2
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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?