Amazon Lightsail で docker-composeを使った立ち上げ + MySQL + PhpMyAdmin
はじめに
Amazon Lightsail で docker-composeを使っている記事がなかったのと、データベース専用のインスタンスを立ち上げる以外の方法も試してみたいなと思ったので今回は試した方法と結果を書きました。
環境
- Amazon Linux 2
- Docker 19.03.6-ce <- 導入方法
- Docker-Compose 1.27.4 <- 導入方法
- Git 2.23.3 <- 導入方法
- Mysql 8.0.22 <- 導入方法
Mysqlの調整
Mysqlの初期化や再起動などでメモリ問題(mmap(137363456 bytes) failed; errno 12)などのエラーで起動しない場合があるので、Swap領域を確保します。これが一番てこずりましたw
swap領域を確保します
free
コマンドを実行すると設定していなければswapが0で出色されますので増やします。
// 空ファイル作成 sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 // 作成した空ファイルをswap領域に設定 sudo mkswap /swapfile // スワップ領域を有効化 sudo swapon /swapfile
MySQが落ちる トラブルシューティング Cannot allocate memory for the buffer pool - 長生村本郷Engineers'Blog
PhpMyAdmin設定
1 インスタンスの「⁝」をクリックして管理を押します。 2 ネットワーキングをクリックして、ファイアーウォールのルールを追加で、以下の条件を設定!
Docker-Composeを作成
参考コードを少し書き換えただけですが以下のように書いてください。
version: '3.8' services: mysql: image: mysql environment: - MYSQL_ROOT_PASSWORD=password <- amazon linux 2のroot@localhostのパスワード phpmyadmin: image: phpmyadmin/phpmyadmin environment: PMA_ARBITRARY: 1 PMA_HOST: mysql PMA_USER: root PMA_PASSWORD: password <- amazon linux 2のroot@localhostのパスワード restart: always links: - mysql:mysql ports: - '8080:80' volumes: - mysql-data:/path/to/data volumes: mysql-data: driver: local
Mysql の root_passwordの調べ方
下記コマンドを実行してMySQLのlogファイルを開く
sudo less /var/log/mysqld.log
開いたファイル内で下記の様な一行を見つける。
YYYY-MM-DDTHH:MM:SS.260490Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: XXXXXXXXXXXX
ファイルに記載された行のXXXXXXXXXXXXの部分がrootユーザの初期パスワードとなる。
AWS EC2 AmazonLinux2 MySQL rootユーザの初期パスワードの確認方法 - Qiita
Docker-Compose実行
docker-compose up -d
phpmyadminへのアクセスは、インスタンスのパブリックipに8080ポートをつけるとアクセスができます。
public-ip:8080
DBeaver 7.1.5のバージョンアップでエラー
最初に
今回は、DBeaver version:7.1.5に上がったのでアップグレードを試みたところ、インストールができない、再インストールしても起動ができないことがあったので記事にしました。
解決までの流れ
1. DBeaverCEインストール
DBeaverCEのインストールをアップグレード時に促されたので、インストールを実行しましたが、以下の画像のようにインストールができませんでした。
2. DBeaverアプリケーションをアンインストール
対処法がわからないかったので、一度アンインストールをしました。
3. DBeaverアプリケーション再インストール
Mac OS X (installer)をインストールしました。
4. DBeaverアプリケーションを起動しようとすると
アプリケーションを起動しようとすると、以下のようなエラー文が出てしまいます。 これは、自分のMac OSにJavaがインストールされていなかったせいでした。
A Java Runtime Enviroment (JRE) or Java Development Kit (JDK) must be available in order to run Dbeaver.
5. Mac OSにJavaをインストールする
今回はJavaをterminalでbrewインストールを使って入れました。
以下のコマンドでjavaのバージョンを確認すると最初はありませんでした。
java -version
なので、brew installします。 OpenJDK の最新バージョンが手元でビルド&インストールされます。
brew install openjdk
次に以下を入力Enter
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
6. Javaのインストールが終わったので再度起動チャレンジ
再度起動のチャレンジをしますが、おそらく通らない場合があります。 その場合は、Mac OS X (installer)をインストールしたからだと思われます。なので次でその解決をします。
7. DBeaver再インストール
先ほどは、installerでインストールしていたので Mac OS X (dmg)にインストールするものを切り替えます。
8. DBeaver 7.1.5が起動する
インストールが終わったら起動してみてください。 成功すれば、以下の画像の赤い矢印部分が7.1.5になっていると思います。