在 Ubuntu 20.04 上安装 MariaDB
MariaDB 是一个开源的关系型数据库管理系统,向后兼容,可替代 MySQL。
MariaDB是由 MySQL 的一些原开发者和很多社区成员共同开发的。
这篇指南将会讲解如何在 Ubuntu 20.04 上安装和保护 MariaDB。
一、前提条件
我们假设你拥有 Ubuntu 服务器的管理权限,或者以 root 身份 或者以拥有 sudo 权限的用户身份登录系统。
二、在 Ubuntu 上安装 MariaDB
在写作的时候,Ubuntu 软件源仓库中的 MariaDB 最新版是 10.3。想要安装它,运行下面的命令:
sudo apt update
sudo apt install mariadb-server
一旦安装完成,MariaDB 服务将会自动启动。 想要验证数据库服务器是否正在运行,输入:
sudo systemctl status mariadb
输出将会显示服务已经启用,并且正在运行:
...
三、保护 MariaDB
MariaDB 服务器有一个脚本叫做mysql_secure_installation
,它允许你可以很容易提高数据库服务器安全。
不带参数运行脚本:
脚本将会提示你输入 root 密码:
sudo mysql_secure_installation
Enter current password for root (enter for none):
因为你没有设置 root 密码,仅仅输入回车"Enter”。
在下一个提示中,你会被问到是否 MySQL root 用户设置密码:
Set root password? [Y/n] n
输入n
。在 Ubuntu 上, MariaDB 用户默认使用auth_socket
进行鉴权。这个插件会检查启动客户端的本地系统用户是否和指定的 MariaDB 用户名相匹配。
下一步,你将会被要求移除匿名用户,限制 root 用户访问本地机器,移除测试数据库,并且重新加载权限表。对于所有的问题,你应该回答Y
:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
四、以 root 身份登录
想要在终端命令行和 MariaDB 服务器进行交互,使用mysql
客户端工具或者mariadb
。这个工具被作为 MariaDB 服务器软件包的依赖软件被安装。
这个auth_socket
插件将会通过 Unix socket 文件验证用户来连接localhost
。这就意味着你不能通过提供密码来验证 root。
想要以 root 用户名登录 MariaDB 服务器,输入:
sudo mysql
你将会被展示 MariaDB shell,就像下面一样:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 61
Server version: 10.3.22-MariaDB-1ubuntu1 Ubuntu 20.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> Bye
如果你想使用第三方程序,例如 phpMyAdmin ,以 root 身份登录你的 MariaDB 服务器,你有两个选择。
第一个是将鉴权方法从auth_socket
修改为mysql_native_password
。你可以通过运行下面的命令做到:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;
第二个,推荐的方式就是创建一个管理员用户,可以访问所有的数据库:
GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';
你可以将这个管理员用户命名为任何你想要的名字,但是请确保你使用了一个强大的密码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~