MariaDB是一个开放源代码,多线程关系型数据库管理系统,是 MySQL 的向后兼容替代品。它由 MariaDB Foundation 进行维护和开发。

在本教程中,将向您展示如何从 MariaDB 软件源在 24.04 安装 MariaDB 最新版本。在撰写本文时,官方 MariaDB 软件源最新版本是 15.1。

前提条件

你有一台运行 Ubuntu 24.04 的服务器。具有 sudo 权限的用户账户。稳定的互联网连接。

更新系统包

在安装MariaDB之前,更新系统包以确保您拥有最新的软件包和安全补丁。打开终端。运行命令以 sudo apt update && sudo apt upgrade -y 更新包列表并升级已安装的包:

sudo apt update && sudo apt upgrade -y

安装 MariaDB

Ubuntu 24.04 的默认软件源包括 MariaDB,可以使用 apt 包管理器安装。运行命令 sudo apt install mariadb-server mariadb-client -y 安装MariaDB服务器和客户端:

sudo apt install mariadb-server mariadb-client -y
  • mariadb-server:MariaDB数据库服务器。
  • mariadb-client:用于与数据库交互的命令行客户端。

安装完成后,MariaDB 服务会自动启动。可以通过以下命令验证服务是否正在运行:

sudo systemctl status mariadb
  • 如果服务正在运行,您将看到“active (running)”状态。
  • 如果未运行,可使用运行命令 sudo systemctl start mariadb 启动:
sudo systemctl start mariadb
  • 要确保 MariaDB 在系统启动时自动运行,启用服务:
sudo systemctl enable mariadb

增强 MariaDB 安全

当 MariaDB 安装完成后,你可能会想运行命令 mysql -u root -p 登录到 MariaDB 服务器。

如果你登录到 Ubuntu 的用户不是 root 用户你将不能访问 MariaDB 服务器。如果你尝试使用密码登录也将被拒绝连接,因为在安装的过程我们并没有设置密码。

你将会收到类似于这样的消息(28000): Access denied for user 'root'@'localhost' (using password: YES)或者ERROR 1045 (28000): Access denied for user 'root'@'localhost'。

这意味着您无法通过提供密码以 root 用户连接到 MariaDB 服务器。但你可以通过命令 sudo mysql 连接到 MariaDB 服务器。

因此 MariaDB 提供一个安全脚本,用于增强数据库的默认安全性。运行命令 sudo mysql_secure_installation 启动安全安装脚本:

sudo mysql_secure_installation

脚本将提示您完成以下步骤:

  • 设置root密码:如果尚未设置root密码,请输入并确认新密码。如果已设置,请输入当前密码。
  • 删除匿名用户:选择“Y”以删除匿名用户,防止未经授权的访问。
  • 禁止远程root登录:选择“Y”以禁用远程root登录,增强安全性。
  • 删除测试数据库:选择“Y”以删除默认的测试数据库。
  • 重新加载权限表:选择“Y”以应用更改。

完成后,您的 MariaDB 安装将会得到更好的安全保护。

连接到 MariaDB 验证安装

检查 MariaDB 是否正确安装并运行。运行命令 mysql -u root -p 登录 MariaDB:

mysql -u root -p

输入在运行命令 sudo mysql_secure_installation 设置的 root 密码。

登录成功后,您将看到 MariaDB 提示符:

MariaDB [(none)]>

运行 SQL 语句 SELECT VERSION(); 检查 MariaDB 版本确认安装:

SELECT VERSION();

退出 MariaDB 提示符:

EXIT;

MariaDB 配置(可选)

MariaDB 的配置文件位于 /etc/mysql/mariadb.conf.d/ 目录中。通常,您需要编辑50-server.cnf 文件来调整服务器设置。

使用文本编辑器(如nano)编辑配置文件:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

根据需要调整设置,例如:

  • bind-address:将绑定地址设置为0.0.0.0以允许远程连接(默认是127.0.0.1)。
  • max_connections:设置最大连接数。

保存更改并运行命令 sudo systemctl restart mariadb 重启 MariaDB 以应用配置:

sudo systemctl restart mariadb

创建数据库和用户(可选)

创建一个示例数据库和用户以开始使用 MariaDB。

登录MariaDB:

mysql -u root -p

创建一个新数据库:

CREATE DATABASE example_db;

创建一个新用户并设置密码:

CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'your_password';

授予用户对数据库的权限:

GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';

刷新权限:

FLUSH PRIVILEGES;

退出 MariaDB:

EXIT;

测试普通用户访问

验证新用户是否可以访问数据库。

使用新用户登录:

mysql -u example_user -p

输入用户密码。

列出数据库以确认访问:

SHOW DATABASES;

您应该看到列出的 example_db

问题解决与排除

  • MariaDB服务未运行:
  • 检查服务状态:
sudo systemctl status mariadb
  • 如果未运行,启动服务:
sudo systemctl start mariadb
  • 无法以root用户登录:
  • 如果忘记 root 密码,可以重置:
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables &
mysql -u root

在 MariaDB 提示符重置密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;

停止并重启 MariaDB:

sudo systemctl stop mariadb
sudo systemctl start mariadb
  • 连接错误:
  • 确保 MariaDB 正在运行,并且防火墙允许 3306 端口( MariaDB 默认端口):
sudo ufw allow 3306

结论

您已在Ubuntu 24.04 成功安装并配置 MariaDB。现在您可以创建数据库、用户,并开始构建应用程序。如果需要进一步帮助,请参考 MariaDB 官方文档