MacでSQLを勉強するための環境を作成しました.そもそもデータベースが分からないから勉強しようとしているのに,入門書を購入したら環境構築方法はWindows用のみで困ったのでGoogle先生に聞きながら作ることになりました.なお今回私が購入したSQLの入門書は以下の本です.基本的な内容は抑えてあり,RDBMSの違いも注意されているので混乱しにくい上に,全てのサンプルコードは各DBMSでの方言対応のものが用意されている念の入れようで至れり尽くせりのお薦めできる本です.
前提条件
- Docker for mac
- Homebrew
環境構築
SQL勉強用ディレクトリを作成して移動します.
mkdir -p ~/pjc/sql_study cd ~/pjc/sql_study
勉強用として使うDBのデータを保存するディレクトリを作成します.今回はmysqlとpostgresqlの環境を作るので,以下のように2つ作成するものとします.
mkdir mysql_db # mysql勉強用 mkdir pgsql_db # postgresql勉強用
データベースはサーバーとクライアントで別れています.今回はサーバーはdockerで建てて,ホストのMacからクライアントで接続します.そのため,Macにデータベースのクライアントをインストールします.
brew install mysql brew install postgresql
次に,dockerを使ってサーバーを起動するための設定ファイルを書きます.今回はdocker-composeを利用します.まず設定ファイルを作成します.
touch docker-compose.yml # 編集する
内容は以下のようにします.
version: "3" services: pgsql_study: image: postgres:alpine ports: - "5432:5432" environment: POSTGRES_USER: dev POSTGRES_PASSWORD: secret volumes: - ./pgsql_db:/var/lib/postgresql/data container_name: pgsql_study mysql_study: image: mysql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: secret MYSQL_USER: dev MYSQL_PASSWORD: secret volumes: - ./mysql_db:/var/lib/mysql container_name: mysql_study
このdocker-dompose.yml
が存在するディレクトリで,次のようにしてSQLサーバーを起動できます.
docker-compose up -d # 両方起動 docker-compose up -d pgsql_study # postgresql 起動 docker-compose up -d mysql_study # mysql 起動
接続したいSQLサーバーが起動している状態で,次のコマンドでDBにアクセスできます.
psql -h 127.0.0.1 -U dev # postgresql 接続 mysql -h 127.0.0.1 -u dev -p # mysql 接続
以上で,いつでもsqlの勉強をできる環境が準備できました.
まとめ
分かりやすいと評判の入門書は何故かWindowsの環境構築方法しか載っていないので,購入して暫く本棚の飾りになってしまいましたが漸く勉強が始められそうです.同じような方の助けになれば幸いです.