红联Linux门户
Linux帮助

Ubuntu LTS server部署OpenStack遇到mariadb无法正常链接的解决

发布时间:2017-01-11 10:42:14来源:linux网站作者:camiiqqo
最近在尝试基于Ubuntu 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-, directory '/usr/share/mysql' not empty so not removed  
dpkg: error processing package mariadb-server- (--configure):  subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing:  mariadb-server- 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-,多次尝试后问题仍存在,就在想到mariadb官方找找文档看。
结果文档没找到,反倒找到了官方的安装文档,遂参考mariadb官方文档安装了最新稳定版本mariadb-server-
在安装过程中,新版会要求设置mariadb root用户口令,而版本却没有。同样在卸载过程中,也提示是否确认删除所有数据库文件,这都是版本没有的。
安装好版本mariadb后,就可正常连接了。
 
总结
通过反复尝试,基本可以判断是安装的mariadb版本(或对应系统)不正确,同时也可能是版本存在这种问题。
如再次遇到类似的问题,可以尝试安装软件的不同版本,或变更安装的路径。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27705.html