mariadb install on Ubuntu 16.04.1 L

youou發表於2021-09-09


最近在嘗試基於Ubuntu 16.04.1 LTS server 部署openstack ,在部署的過程中遇到mariadb 無法正常連結。

問題

參照openstack 官方文件安裝mariadb,安裝後遇到無法在本地登入的問題

$mysql -u root -p

$mysql -h localhost -u root -p

報錯如下

mysql (mariadb) ERROR 1698 (28000): Access denied for user 'root'@'localhost'

但使用如下方式卻可以登入

$sudo mysql -u root

遂解除安裝mariadb,但解除安裝方式比較暴力,導致再次安裝時報出類似如下錯誤

dpkg: warning: while removing mariadb-server-core-10.0, directory '/usr/share/mysql' not empty so not removed

dpkg: error processing package mariadb-server-10.0 (--configure):  subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing:  mariadb-server-10.0 E: Sub-process /usr/bin/dpkg returned an error cod

E: Sub-process /usr/bin/dpkg returned an error code (1)

解決方案

先說下解除安裝方式,透過包管理器正確解除安裝軟體的方式如下

apt purge mariadb* mysql*

apt autoremove

apt autoclean

如重新安裝時遇上述錯誤,可嘗試強制安裝(apt install -f)、重新安裝(apt --reinstall install)、正確解除安裝方式(apt purge mariadb && apt autoremove && apt autoclean)

如遇依賴警告,直接安裝對應依賴

接下來說說對mariadb的解決方案

透過反覆多次嘗試,最後透過安裝更高版本解決。

之前的安裝是參照openstack 官方文件,安裝的是mariadb-server-10.0,多次嘗試後問題仍存在,就在想到mariadb官方找找文件看。

結果文件沒找到,反倒找到了官方的安裝文件,遂參考mariadb官方文件安裝了最新穩定版本mariadb-server-10.1

在安裝過程中,新版會要求設定mariadb root使用者口令,而10.0版本卻沒有。同樣在解除安裝過程中,也提示是否確認刪除所有資料庫檔案,這都是10.0版本沒有的。

安裝好10.1版本mariadb後,就可正常連線了。

總結

透過反覆嘗試,基本可以判斷是安裝的mariadb版本(或對應系統)不正確,同時也可能是10.0版本存在這種問題。

如再次遇到類似的問題,可以嘗試安裝軟體的不同版本,或變更安裝的路徑。

©著作權歸作者所有:來自51CTO部落格作者lylspecter的原創作品,如需轉載,請註明出處,否則將追究法律責任

installmariadbDB


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4729/viewspace-2820466/,如需轉載,請註明出處,否則將追究法律責任。

相關文章