引言:MariaDB在MySQL被Oracle收归旗下之后,开始作为Linux默认的数据库系统,这里主要描述在Ubuntu 16.04下如何来安装MariaDB的步骤。
1. 安装指令
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.2/ubuntu xenial main'
这里选中清华的数据服务
sudo apt update
执行结果如下:
yzc@yzc:~$ sudo apt update
>> sudo apt install mariadb-server
2. 查看sourcelist.
>> sudo vi /etc/apt/sources.list
# MariaDB 10.2 repository list - created 2017-08-10 05:39 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.2/ubuntu xenial main
deb-src http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.2/ubuntu xenial main
3. 无法连接Mariadb的问题
安装完成Mariadb之后,基于mysql workbench无法连接mariadb, 提示"Plugin 'unix_socket' is not loaded"的错误细心:
什么是unix_socket plugin?
是一种安全机制,允许使用操作系统的安全机制连接数据库,通过unix_socket组件,通常使用用在Ubuntu 15.04+以上的系统中。
解决的方法:
1. 尝试登陆mysql的命令, mysql -u root -p, 如果看到如下错误,则需要进入步骤2,否则直接进入步骤6.
linuxidc@linuxidc:~$ sudo mysql -u root -p
Enter password:
ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded
这个原因是由于当前使用的unix_socket来进行连接,但是缺省的用户也无法进行访问。
2. 停止服务,使用设置native方式来访问,重置缺省密码
>> sudo systemctl stop mariadb # 停止服务
>> sudo mysqld_safe --skip-grant-tables & # 进入安全模式,并设置为后台进程
>> mysql -u root # 登陆mysql
>> select Host,User,plugin from mysql.user where User='root'; # 查询用户
>> update mysql.user set plugin='mysql_native_password'; #重置加密模式
>> update mysql.user set password=PASSWORD("newpassword") where User='root'; #重置密码
>> flush privileges; #刷新权限信息
>> exit
杀掉进程,重新启动服务
>> sudo kill -9 $(pgrep mysql) # 杀掉进程
>> sudo service mariadb start # 重新启动服务
3. 登陆mysql, 安装unix_soket
>> mysql -u root -p
>> install plugin unix_socket soname 'auth_socket';
然后就可以正常访问了。