本來應該是悠哉悠哉的假日, 最後因為公司的Wordpress出了一些問題所以需要緊急的從新安裝一次。 因為這個Wordpress 之前因為流量算不錯, 所以有人曾經駭客進去蹭流量。 當時緊急處理後就一直等機會清理一次。 這次機會來了。
這次從新案安裝了“乾淨”的Wordpress後會手動的把數據從舊的Wordpress遷移到新的Wordpress。 這個動作其實不難。 只要登入phpmyadmin手動備份相關的數據出來就好。 這裡就講一下可以如何使用安裝Docker的phpmyadmin來連結到AWS上的數據庫。
Docker 是一種軟體平台,可讓快速地建立、測試和部署應用程式。Docker 將軟體封裝到名為容器(container)的標準化單位,其中包含程式庫、系統工具、程式碼和執行時間等執行軟體所需的所有項目。
使用Docker和VM最大的差異是, 容器(container)不需要額外的操作系統。把應用程式所需要的libary, 代碼和環境設定等打包成一包。
對我來說Docker的最大好處是我不用去煩惱安裝我要使用的軟件的細節, 你想到的軟件如mysql, mssql, mariadb, mongo 等等, 都應該找到的已經安裝好的容器。 只要下載使用即可, 大大的提高了作業的效率。
Step 1 : Docker上安裝phpmyadmin
安裝好Docker以後, 可以按照這裡的方式下載已經容器化的phpmyadmin。這個過程你也可以安裝mysql的容器, 同樣的這裡下載安裝就好, 這樣會比較好測試你的phpmyadmin是否安裝好了。 我們最終是要連接到aws上的mysql。
安裝好後在瀏覽器輸入 localhost:8080 應該看到以上的登入介面。登入密碼會是你啟動你的mysql docker 時候所設定的密碼。
$ docker run –name mysql_db_server -e MYSQL_ROOT_PASSWORD=”xxx密碼“ -d mysql:latest
mysql 啟動是設定密碼
如上, 如果我啟動我的Docker mysql 的時候設定的密碼 是 “xxx密碼” , 那麼登入phpmyadmin 的時候只要輸入 Username = root Password=xxx密碼 就可登入。
到這裡為止, 我們成功的安裝了mysql 和 phpmyamin在我們的桌機上的docker。 下一步就是引導phpmyadmin連結到aws上的mysql。
Step 2 索取AWS上的private key
概念上, 我們在自己的桌機上安裝了 Docker的phpmyadmin, 然後我們會通過SSH tunnel讓phpmyadmin去管理aws 上的lightsail 數據庫。這是AWS唯一開放的路徑。
從帳戶頁面進入去下載你的lightsail 的private key。
Step 3 SSH tunnel 到AWS
ssh -N -L 8888:127.0.0.1:80 -i privatekey.pem user@xxx.xxx.xxx.xxx
在Mac 的terminal執行以上的指令。 請用你的private key 文檔的名字取代privatekey.pem, 用你自己數據庫的用戶名稱取代user,用你自己的伺服器的IP取代xxx.xxx.xxx.xxx
這時候刷新你的瀏覽器, 這次要用你的AWS數據庫的使用者帳號秘密登入了, 不再是你自己的Docker的mysql帳號密碼。AWS的數據庫帳號密碼在Wordpress 的wp-config裡面, 找到這個文檔就可以通過nano打開來查看密碼和用戶名稱了。
這次記得使用:http://127.0.0.1:8888/phpmyadmin 來登入phpmyadmin。
總結
好了, 筆記📒到這裡。 以上的方式, 通過Docker可以讓我快速的通過phpmyadmin管理aws上的任何數據庫。 我也不會因為要安裝各種軟件弄到自己的Mac亂七八糟。 不管是管理或是運作上都大大的提升了效率。