一 安装 MariaDB 10.4

本系列文章均在 Ubuntu18.04 下进行测试或示例。

查询已安装的 maria 关键词

终端执行 sudo dpkg -l | grep maria。可用此检查之前是否已有安装过mariadb。

安装 MariaDB

注意:可以在https://downloads.mariadb.org/mariadb/repositories/中去设定添加,选择自己的系统及版本、要安装的 MariaDB 版本、符合自己国家区域的仓库,加快下载数据。

五月份的时候mariadb10.5.3 RC也已经发布了,感兴趣可以试下。

添加区域仓库地址

Step 1:安装 software-properties-common

sudo apt-get install software-properties-common

Step 2:将 Repository Key 放置系统中

如果网页https://downloads.mariadb.org/mariadb/repositories/中获取到的添加 key 指令运行失败,可使用以下替代:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Step 3:新增 apt 储存库

sudo add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"

不行再执行下方指令

sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.4/ubuntu bionic main'

(需注意版号,如:10.4)

添加成功后再更新套件:

sudo apt update

Step 4:于系统上安装 MariaDB

sudo apt-get install mariadb-server

安装完成,检查 MariaDB 服务状态:

sudo systemctl status mariadb

检查MariaDB状态

如上图,则说明安装成功。

MariaDB 基本配置

安装完后,可以先进行重启

sudo service mariadb restart

再进行环境基本设定:

sudo mysql_secure_installation

执行命令之后,终端出现以下问题:

1、Enter current password for root (enter for none):
(直接 enter,预设 MariaDB 没有密码)
2、Switch to unix_socket authentication Y/n
3、Change the root password? Y/n(注意:root 密码最好是复杂密码,否则可能会每次连接 MariaDB 需要加 sudo 的问题,例如我设定的是 root,稍后会提到)
4、Remove anonymous users? Y/n
5、Disallow root login remotely? Y/n
6、Remove test database and access to it? Y/n
7、Reload privilege tables now? Y/n

登入指令

sudo mysql -u root -p

登入 MariaDB

注意:解决 MariaDB 需要使用 sudo 才能连接的问题
如果使用 Ubuntu 18.04 版本中安装 MariaDB 后,MariaDB 每次访问需要加 sudo 的才能访问 MariaDB,原因是因为 MariaDB 中 root 用户的密码强度不是强类型。

mysql 亦然。

分析说明:
进入 MariaDB,查看用户权限:

use mysql;
select User,host,plugin from user;

查看用户权限

虽然官方不建议使用 mysql_native_password 来作为高强度密码安全机制,但它对密码的设定仍有一些限制。

例如现在出现的使用密码是 root,可以访问 MariaDB,虽然需要 sudo。

想要直接命令访问 MariaDB 不加 sudo,只需把该账户的密码改为强类型的密码,例如包含大小写字母、数字、符号的至少 8 位数。

例如,我将密码修改为“P@ssw0rd”,执行以下指令:

SET PASSWORD =  PASSWORD('P@ssw0rd');

修改root密码

可以看到,修改密码之后,可以不加 sudo 直接访问 MariaDB 了。这目前同样可以解决 mysql 无法直接连接的问题。

后续会介绍更多关于 MariaDB 账户强密码限制等其它插件,可期。

如果还只是刚配置 MariaDB,也可以重新运行sudo mysql_secure_installation重新设置。

解决远程不能访问的问题

找到 MariaDB 的配置文件,默认地址/etc/mysql/my.cnf。修改[mysqld]参数下
bind-address = 127.0.0.1 => bind-address = 0.0.0.0,再重启 MariaDB service。

ref:
https://medium.com/@jscinin/ubuntu-linux-18-04%E5%AE%89%E8%A3%9Dmariadb%E5%8F%8A%E5%9F%BA%E6%9C%AC%E9%85%8D%E7%BD%AE-%E7%A7%BB%E9%99%A4%E6%8C%87%E4%BB%A4-8d6d2ce0a73a

二、卸载 MariaDB

卸载所有 mariadb/mysql 相关的软件

sudo apt-get remove mysql-\*

如果安装的是 mariadb 不是 mysql,也可以,有类似以下提示:

...
注意,选中 'mariadb-client-10.4' 而非 'mysql-client-5.5'
注意,选中 'mariadb-client-10.4' 而非 'mysql-client-5.6'
注意,选中 'mariadb-server-core-10.4' 而非 'mysql-server-core-5.6'
注意,选中 'mariadb-client-core-10.4' 而非 'mysql-client-core-5.5'
注意,选中 'mariadb-client-core-10.4' 而非 'mysql-client-core-5.6'
...

再执行

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

会出现窗口:

软件包设置窗口

这是清理 MariaDB 中的数据库,是彻底地卸载的话,一并移除即可。

点击“是”之后,再执行一次dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P。如果出现以下类似的信息:

没有找到对应软件包信息

则说明卸载成功。

当然,以上指令是卸载 MariaDB 或 mysql 都可。如果明确知道安装的是 MariaDB,直接使用
sudo apt-get purge mariadb-*即可。

ref:
https://wsonh.com/article/145.html