前一篇完成了下載 LAMP server 以及介紹其他細節的部份,然而還有一些部份需要再額外設定,這一篇將會介紹如何設置 phpMyAdmin 和 MySQL
雖然本人目前為止已經較少使用圖形化介面,但考量到有些人對 SQL 的基本指令較不熟悉的狀況,故在此還是為該設置步驟做介紹。
首先在終端機輸入以下指令:$ sudo apt install phpmyadmin
安裝的過程中會進入設定頁面
此時會要求設定網頁伺服器,由於我們是安裝 LAMP server ,因此選擇 apache2
最後要設定的是 dbconfig-common,此處將會建立一個帳號來管理 phpMyAdmin 運行時用到的資料表( 不過通常不太實際操作到資料庫就是了... ),而這個使用者名稱預設為 phpmyadmin,然後再設定這個使用者密碼。
然而在瀏覽器輸入 localhost/phpmyadmin
後卻無法進入 phpMyAdmin,因此還需要再額外動用設定檔以便 phpMyAdmin 能夠被網頁伺服器辨識
編輯 apache2 的 configuration file$ sudo vim /etc/apache2/apache2.conf
進入設定檔後,在最後一行加入以下指令
*apache2.conf
Include /etc/phpmyadmin/apache.conf
$ sudo service apache2 restart
重新在瀏覽器輸入 localhost/phpmyadmin
就可以看到 phpMyAdmin 的登入頁面,就算設定完成。
設置完 phpMyAdmin 之後,接下來就來設定 MySQL 的 root 密碼,也就是登入之後能夠實際對資料庫採取增刪改查等動作,並且也可以透過 phpMyAdmin 這個圖形化介面直接操作資料庫。
其實可以不用密碼直接透過本地端登入 MySQL$ sudo mysql -u root
預設的情形下,MySQL 使用 auth_socket 的驗證 plugin,使得使用者可以透過 sudo 直接登入 root 帳號。我們可以直接使用預設的驗證 plugin,只是就無法透過 phpMyAdmin 登入圖形化介面了 ( phpMyAdmin 預設是需要密碼登入的 )。而除了用以上方式簡單登入外,也可以設定自己的 root 密碼,若要設定密碼,必須接續下列步驟。
切換至 mysql 資料庫mysql> use mysql
讓 root 帳號啟用設定密碼的插件mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
輸入指令重新載入特權表mysql> FLUSH PRIVILEGES;
退出 MySQL 的 shell ( 也可以直接輸入 ctrl+z )mysql> exit
或者
mysql> quit
設定 MySQL 的 root password$ sudo mysql_secure_installation
輸入 y 開啟 VALIDATE PASSWORD 插件
在以下的詢問中皆輸入 y
Remove anonymous users?
Disallow root login remotely?
Remove test database and access to it?
Reload privilege tables now?
到此為止 MySQL 的 root 密碼已經設定完成,就可以登入 phpMyAdmin 了。然而還有一個小問題,在查看任一個資料庫的任一個資料表時會顯示以下錯誤
原因是在 php 7.2 後,count() 沒有添加參數的情形下,就會噴出Warning,而對於這個問題 phpMyAdmin 還沒有排除此錯誤,所以必須靠我們自己手動解決。
其中有兩個部分要修改
$ sudo vim /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
將第 551 行的 count($options) > 0 去掉
if ($options != null ) {
// …..
}
$ sudo vim /usr/share/phpmyadmin/libraries/sql.lib.php
將第613行換成以下形式 ( 注意看好括號 )
|| ((count($analyzed_sql_results['select_expr']) == 1)
以上步驟完成之後就可以正常運作了
下一篇就來設定 Laravel。
參考資料