1
1

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.

dbdbを使って複数データベースサーバーとバージョンを管理する

Last updated at Posted at 2021-05-14

dbdbとは?

こんなときにdbdbでDB管理が楽になります

  • ローカルにデータベースが必要な場合
  • 複数のデータベース(MySQL, PostgreSQL, MongoDB, Redis)が必要な場合
  • また、複数のバージョン(MySQL 5.7, MySQL 8.0)がプロジェクト内で混在している場合
  • 開発用データベースとテスト用データベースでポートを分けている場合

Install

git clone https://github.com/yuki777/dbdb.git
cd dbdb

MySQLサーバを作成して起動してみる


# ./mysql/create.sh {name} {mysqlVersion} {port}

# MySQLサーバを、バージョン5.7.31で、ポート3306で作ってみる
./mysql/create.sh mysql5-foo 5.7.31 3306
./mysql/start.sh  mysql5-foo 5.7.31 3306 # 起動

# MySQLサーバを、バージョン8.0.23で、ポート13306で作ってみる
./mysql/create.sh mysql8-bar 8.0.23 13306
./mysql/start.sh  mysql8-bar 8.0.23 13306 # 起動

接続してみる

./mysql/connect.sh mysql5-foo 5.7.31 3306
./mysql/connect.sh mysql8-bar 8.0.23 13306

# 普通にMySQLが起動しているだけなのでデフォルトのrootアカウントでログインもできます
mysql --user=root --port=3306 --host=127.0.0.1 
# host=localhostでもok
mysql --user=root --port=3306 --host=localhost --socket=/tmp/dbdb_mysql_3306.sock
# mysqlクライアントがなければdbdbがインストールしたクライアントを使うこともできます
./mysql/versions/5.7.31/basedir/bin/mysql --user=root --port=3306 --host=127.0.0.1

起動中のデータベース一覧を表示する

./dbdb.sh

mysql.5.7.31.mysql5-foo is running.
/Users/yuki/git/dbdb/mysql/start.sh   mysql5-foo 5.7.31 3306 # これを実行すると起動します
/Users/yuki/git/dbdb/mysql/stop.sh    mysql5-foo 5.7.31 3306 # これを実行すると終了します
/Users/yuki/git/dbdb/mysql/restart.sh mysql5-foo 5.7.31 3306 # これを実行すると再起動します
/Users/yuki/git/dbdb/mysql/status.sh  mysql5-foo 5.7.31 3306 # これを実行するとステータスを表示します
/Users/yuki/git/dbdb/mysql/connect.sh mysql5-foo 5.7.31 3306 # これを実行すると接続します
/Users/yuki/git/dbdb/mysql/delete.sh  mysql5-foo 5.7.31 3306 # これを実行すると削除します

mysql.8.0.23.mysql8-bar is running.
/Users/yuki/git/dbdb/mysql/start.sh   mysql8-bar 8.0.23 13306
/Users/yuki/git/dbdb/mysql/stop.sh    mysql8-bar 8.0.23 13306
/Users/yuki/git/dbdb/mysql/restart.sh mysql8-bar 8.0.23 13306
/Users/yuki/git/dbdb/mysql/status.sh  mysql8-bar 8.0.23 13306
/Users/yuki/git/dbdb/mysql/connect.sh mysql8-bar 8.0.23 13306
/Users/yuki/git/dbdb/mysql/delete.sh  mysql8-bar 8.0.23 13306

ほか

  • データベースサーバが存在しなければ作成して起動したい場合
./create-start.sh mysql5-hoge 5.7.31 23306
  • 起動時にデータベースサーバも起動したい場合
# Start mysql5
@reboot /path/to/dbdb/mysql/start.sh mysql5-foo 5.7.31 3306

# Start mysql8 with port 13306
@reboot /path/to/dbdb/mysql/start.sh mysql8-bar 8.0.23 13306

# Try create, then start the server
@reboot /path/to/dbdb/redis/create-start.sh  redis6-hoge 6.0.10 6379
  • 需要があればもう少し書きます
1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?