忘記管理員密碼怎麼辦?在資料庫中建立新的管理員 - Part 1
四月初網站上線後開開心心去度假,五月收到回報需要對網站作修正時才發現管理員密碼不知所蹤。
這問題在網路上已經有許多的分享,解決方案為直接在 MySQL 資料庫內建立新的管理員。但若是單純使用 Lightsail Instance ,似乎是無法直接存取 Database 。要怎麼建立新的管理員呢?作成 Lightsail Database並完成設置、將WordPress MySQL Database 輸入到新的資料庫進行連結。完成後就能從 Lightsail Database 存取資料庫、建立新的管理員。
註:如果有比以下更好的解法請一定要跟我分享
Lightsail Database 的建置和輸入準備 #
進入 Lightsail Console 後選擇 Database 的分頁並選擇建立新的 MySQL 資料庫,如果網站資料庫沒有特殊需求,選擇最簡單的方案即可。建置好的資料庫需要開啟「輸入模式 Import Mode」和「公開模式 Public Mode」,原先設置好的 Lightsail Instance 才能夠對資料庫進行存取。在輸入資料時會將這兩個模式開啟,在完成輸入之後千萬要記得將這兩個模式確實關閉,避免被不明人士直接存取我們的資料庫。
完成建置的 Lightsail Database 有許多設定,在 Connect 分頁能找到「Data Import Mode」的按鈕、預設為 Disable,點選按鈕之後可以開啟「輸入模式」。最後到 Network 分頁能找到「Public Mode」的按鈕、預設同樣為 Disable,點選按鈕後啟用、讓 Lightsail Database 能從外部存取。
至此我們已經完成 Lightsail Database 的設定,接下來需要 SSH 進入 WordPress 網站使用的 Lightsail Instance、將內部資料庫的內容輸出,透過剛剛開啟的 Public Mode 和 Import Mode 把資料輸入到新建立的 Lightsail Database 上。
- Creating a database in Amazon Lightsail
- Configuring the public mode for your database in Amazon Lightsail
- Configuring the data import mode for your database in Amazon Lightsail
將 WordPress MySQL 資料庫輸入到 Lightsail Database #
在 SSH 進入 WordPress 網站使用的 Lightsail Instance 前,可以記下 Lightsail Database 的 username 和 endpoint 訊息供後續使用。SSH 後使用 mysqldump 指令來將 bitnami_wordpress 資料庫的內容壓縮後進行一次性傳輸到新建立的 Lightsail mysql 資料庫中。
sudo mysqldump -u root --databases bitnami_wordpress --single-transaction --compress --order-by-primary -p$(cat /home/bitnami/bitnami_application_password) | sudo mysql -u DbUserName --host DbEndpoint --password
指令中有幾個要注意的部分:
sudo mysql -u DbUserName –host DbEndpoint –password 的部分是指向我們新建的 Lightsail Database ,因此要將 DbUserName 和 DbEndpoint 變更為剛剛記下的 database username 和 endpoint 訊息。
修正並輸入指令後,會要求輸入新建 MySQL 資料庫密碼,同樣也能在 Lightsail Database 的頁面中找到。
如此便成功的將 WordPress binami 資料庫輸出到 Lightsail Database 。
變更 WordPress 設定直接讀取 Lightsail Database 資料庫 #
截至目前為止的設定都是將現有的資料複製到新的資料庫中,若現在在 WordPress 後台進行更新,所做的變更依舊是在 Lightsail Instance 的資料庫中。這時候就需要變更 wp-config.php 的設置,讓網站和 Lightsail Database 資料庫做直接溝通。
cp /opt/bitnami/wordpress/wp-config.php /opt/bitnami/wordpress/wp-config.php-backup
在進行變更前用 cp 指令複製 wp-config.php 以防萬一。
nano /opt/bitnami/wordpress/wp-config.php
用內建的文字編輯器 nano 編輯 wp-config.php ,使用 CTRL + W 搜尋 DB_USER、DB_PASSWORD和DB_HOST。
將 DB_USER 變更為 Lightsail Database 的dbmasteruser; DB_PASSWORD為剛剛有使用到的密碼; DB_HOST則是剛剛使用的 endpoint 後面加上 port number 埠號 :3306 。
使用 CTRL+X 來關閉 nano 編輯器,選擇 Y 來儲存變更。
完成上述後需要重新啟動 Lightsail Instance 來使用變更後的設定。
sudo /opt/bitnami/ctlscript.sh restart