如安在 Ubuntu 22.04 上安装并开始使用 MariaDB

打印 上一主题 下一主题

主题 964|帖子 964|积分 2892

简介

这个关于 MariaDB 安装的循规蹈矩教程将演示如安在 Ubuntu 22.04 服务器上安装 MariaDB,包罗设置以及如何开始使用它。别的,我们还将夸大一些最佳实践,以确保 MariaDB 数据库服务器的最佳性能。
什么是 MariaDB?

MariaDB 可以说是使用最广泛的开源关系数据库系统之一,从学习 SQL 数据库的新手到从事大型 IT 项目的履历丰富的开发职员都在使用。MariaDB 仍旧是最受接待的关系数据库管理系统 (RDBMS) 之一。
MariaDB 是社区开发的,是 MySQL 数据库 服务器的直接替代品。它在 2009 年 Oracle 收购 MySQL 后从盛行的 MySQL 数据库服务器分叉而来。
与 MySQL 相比,MariaDB 提供更好的性能、速度和安全性。由于其异步主从复制,它在复制方面也优于 MySQL。
如安在 Ubuntu 20.40 上安装 MariaDB?

现在我们知道什么是 MariaDB、它的用途以及我们须要哪些先决条件,让我们看看如安在 Ubuntu 22.04 服务器上安装 MariaDB 并让你开始使用它。
第 1 步:通过登录你的 Ubuntu 服务器安装 MariaDB

首先,登录你的 Ubuntu 22.04 服务器并刷新本地存储库。
  1. sudo apt update
复制代码
Ubuntu 存储库已提供 MariaDB 软件包。使用 PAT 软件包管理器安装很简单,如下所示。
  1. sudo apt install mariadb-server mariadb-client -y
复制代码
但是,Ubuntu 存储库提供的 MariaDB 版本不是最新版本。在撰写本指南时,这会安装 MariaDB 10.3.24。要安装最新版本,请使用官方 MariaDB 存储库。
首先,安装必备软件包。
  1. sudo apt install -y software-properties-common
复制代码
接下来,导入 GPG 签名密钥。
  1. sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
复制代码
GPG 密钥就位后,添加 MariaDB APT 存储库。以下存储库已为 MariaDB 版本 10.6 启用。你可以将此值替换为你计划安装的版本。
  1. sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mariadb.mirror.liquidtelecom.com/repo/10.6/ubuntu focal main'
复制代码
最后,刷新本地存储库并使用 APT 软件包管理器安装 MariaDB 服务器和客户端。
  1. sudo apt update
  2. && sudo apt install -y mariadb-server mariadb-client
复制代码
该命令会安装指定版本的 MariaDB 数据库引擎和客户端,以及其他额外的软件包和依靠项。
你可以按所示确认 MariaDB 的已安装版本。
  1. mariadb --version
复制代码

第 2 步:启动并启用 MariaDB

默认情况下,MariaDB 数据库引擎会在安装时主动启动。你可以通过运行以下命令来验证这一点:
  1. sudo systemctl status mariadb
复制代码

从上面的输出中,你可以看到 MariaDB 服务正在运行。如果由于某种原因,你发现该服务处于非运动状态或未运行,你可以按如下方式启动它。
  1. sudo systemctl start mariadb
复制代码
别的,请思量启用 MariaDB 在每次系统启动时都启动,如所示。
  1. sudo systemctl enable mariadb
复制代码
上述命令可确保每次服务器重新启动或开机时,MariaDB 都会主动启动。
第 3 步:设置 MariaDB

MariaDB 附带默认设置,这些设置被认为是弱的,并且存在可能被恶意方使用导致数据泄露的漏洞。
要解决此标题,你须要额外采取一个步骤并强化你的 MariaDB 实例。要进步 MariaDB 数据库引擎的安全性,你须要运行 mysql_secure_installation shell 脚本,如所示。
  1. sudo mysql_secure_installation
复制代码
该脚本会引导你完成一系列提示,这些提示将要求你更改涉及 MariaDB 数据库引擎的安全选项。
第一个提示会要求你提供当前的 root 密码,由于尚未设置任何密码,因此只需按键盘上的 ENTER 即可。

接下来,系统将提示你输入数据库 root 密码。这确保了没有身份验证,任何人都无法以 root 用户身份登录。因此,键入 “Y” 并提供数据库 root 密码并确认它。
然后,针对后续提示按 “Y”,以便根据最佳安全实践设置数据库引擎。这将执行以下操纵:


  • 从数据库服务器中删除匿名用户
  • 禁用远程 root 登录。这可确保 root 用户只能从“localhost”登录到数据库服务器
  • 删除 MariaDB 默认附带的测试数据库
  • 重新加载权限表,使更改立即生效

此时,你已成功完成 MariaDB 的初始安全设置。
第 4 步:设置密码验证的管理用户

在本节中,你将在数据库服务器中创建一个新的用户帐户,并使用密码身份验证,稍后将管理权限分配给该用户。因此,请按如下方式以 root 用户身份登录:
  1. sudo mariadb -u root -p
复制代码
接下来,创建一个常规用户。在此处,我们创建一个名为 admin_user 的用户。请务必将 secret_password 替换为你首选的用户密码。
  1. CREATE USER 'admin_user'@'localhost' IDENTIFIED BY 'secret_password';
复制代码
输出
  1. Query OK, 0 rows affected (0.000 sec)
复制代码
接下来,将所有权限授予 admin_user。这现实上会将数据库 root 用户的所有权限分配给该用户。
  1. GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost';
复制代码


  • .* 通配符表示用户有权在数据库服务器中的任何数据库上执行任何任务。
要应用更改,请刷新权限。
  1. FLUSH PRIVILEGES;
复制代码
最后,退出数据库服务器。
  1. EXIT;
复制代码
第 5 步:测试 MariaDB

设置了 MariaDB 数据库服务器后,你现在可以登录并运行一些查询。继续使用你刚刚创建的管理用户登录到数据库服务器。
  1. sudo mariadb -u admin_user -p
复制代码

提供管理用户的密码并按 ENTER 键。在 MariaDB shell 上方,将表现有关数据库服务器的一些详细信息,包罗毗连 ID、服务器版本和版权信息。
要查抄现有数据库,请运行以下命令:
  1. SHOW DATABASES;
复制代码
输出
  1. +--------------------+
  2. | Database           |
  3. +--------------------+
  4. | information_schema |
  5. | mysql              |
  6. | performance_schema |
  7. +--------------------+
  8. 4 rows in set (0.002 sec)
复制代码
要创建一个新数据库,请运行以下查询。在此示例中,我们创建一个名为 test_db 的数据库。
  1. CREATE DATABASE test_db;
复制代码
输出
  1. Query OK, 1 row affected (0.000 sec)
复制代码
要应用所有已做的更改,而无需重新启动或重新加载 MariaDB,请运行以下查询:
  1. > FLUSH PRIVILEGES
复制代码
输出
  1. Query OK, 0 rows affected (0.000 sec)
复制代码
要列出数据库引擎中所有现有效户,请运行以下查询。
  1. SELECT host, user FROM mysql.user;
复制代码
输出
  1. +-----------+-------------+
  2. | Host      | User        |
  3. +-----------+-------------+
  4. | localhost | admin_user  |
  5. | localhost | mariadb.sys |
  6. | localhost | root        |
  7. +-----------+-------------+
  8. 3 rows in set (0.001 sec)
复制代码
要退出 MariaDB 提示符,只需运行:
  1. QUIT
复制代码
输出
  1. Bye
复制代码
第 6 步:设置 MariaDB 以得到最佳性能

MariaDB 的默认设置只答应它在桌面系统上发挥最佳作用,因为它们的资源使用率较低。但是,如果你计划将 MariaDB 部署到生产情况,则须要采取一些额外的步骤来设置它,以便以最佳性能处理大量工作负载。
在本节中,我们将探究一些你可以设置的变量,以便充分使用你的数据库服务器。
通常通过编辑 /etc/mysql/my.cnf 设置文件来设置 MariaDB。它包罗许多确定数据库性能的变量。
为了数据库服务器的最佳性能,请思量以下要点:


  • 指定 InnoDB 缓冲池巨细
  • 禁用交换性
  • 指定最大毗连数
  • 禁用 MariaDB/MySQL DNS 查找
  • 指定查询缓存巨细
  • 启用慢查询日记
  • 指定空闲毗连值
让我们快速浏览一下每个变量。
指定 InnoDB 缓冲池巨细

自 2010 年 MyISAM 弃用以来,InnoDB 是 MariaDB 的默认存储引擎。可以将其设置为向数据库服务器提供高可靠性和高性能。
你可以通过在 /etc/mysql/my.cnf 文件中设置 innodb_buffer_pool_size 参数,在 MariaDB 中启用缓存和索引。分配给此参数的内存量取决于服务器上的 RAM 量。
最常见的做法是将此值设置为系统上可用 RAM 的 70%。但是,这对于大多数系统(尤其是具有巨大 RAM 巨细的系统)来说不是最佳的。
例如,一个具有 128GB RAM 的系统。按照此规则,缓冲池巨细约为 90GB,仅留下 38GB 供其他进程使用。
为你的数据库服务器获取保举的缓冲池巨细值的更好方法是运行以下查询:
  1. SELECT CEILING(Total_InnoDB_Bytes*1.6/POWER(1024,3)) RIBPS FROM
  2. (SELECT SUM(data_length+index_length) Total_InnoDB_Bytes
  3. FROM information_schema.tables WHERE engine='InnoDB') A;
复制代码
这提供了建议的 InnoDB 缓冲池巨细 (RIBPS)。
输出
  1. +-------+
  2. | RIBPS |
  3. +-------+
  4. |     1 |
  5. +-------+
  6. 1 row in set (0.032 sec)
复制代码
从以上输出中,建议的 InnoDB 缓冲池巨细为 1GB。你的情况可能差别。
因此,编辑 /etc/mysql/my.cnf 设置文件并添加以下行。请务必根据你得到的结果指定内存巨细。
  1. innodb_buffer_pool_size = 1G
复制代码
保存更改并重新启动 MariaDB 以应用更改。
  1. sudo systemctl restart mariadb
复制代码
禁用交换性

交换空间是硬盘上的一个特殊地区,当 RAM 即将耗尽或用完时使用。发生交换时,你的磁盘 I/O 将被使用,并会显着低沉服务器速度。如果未采取正确的措施,服务器可能会崩溃。因此,你须要通过在终端上运行以下命令来禁用交换性。
  1. sudo sysctl -w vm.swappiness=0
复制代码
指定最大毗连数

max_connections 参数指定当前在你的 MariaDB 服务器上启动的并发毗连数。过多的毗连通常会导致较高的 CPU 负载和内存使用率。对于小型网站,毗连数范围为 300 到 500 个毗连,而高流量网站的毗连数范围为 1000 到 1500 个毗连。
可以使用以下 SQL 查询设置 max_connections 值。在此示例中,最大毗连数已设置为 500 个并发毗连。
  1. mysql> set global max_connections=500;
复制代码
禁用 MariaDB/MySQL DNS 查找

启动新毗连时,MariaDB 会执行 DNS 查找以解析访问者的 IP 地点。当 DNS 服务器出现标题或检测到无效的 DNS 设置时,可能会导致耽误。
要禁用 DNS 查找,只需在 /etc/mysql/my.cnf 设置文件中添加以下行。
  1. skip-name-resolve
复制代码
然后重新启动 MariaDB 服务以应用更改。
设置查询缓存巨细

另一个要包罗的关键参数是 query_cache_size 指令。它用于缓存所有带有雷同数据的重复查询。对于小型网站,此参数的值不应凌驾 64MB。即使对于高流量站点,也不建议将此值设置为千兆字节,因为它可能会显着低沉数据库性能。
因此,再次按如下所示编辑 /etc/mysql/my.cnf 文件。
  1. query_cache_size=64M
复制代码
保存更改,然后再次重新启动 MariaDB 服务。
设置空闲毗连值

空闲毗连会占用资源,导致数据库性能下降。这些毗连进入“就寝”状态,并且可能会长时间处于就寝状态。你可以通过运行以下命令来探测空闲毗连。
  1. sudo mysqladmin processlist -u root -p | grep -i "Sleep"
复制代码
使用 wait_timeout 指令,你可以关闭或中断空闲毗连。默认情况下,此值为 28800 秒,可以进一步缩减为 60 秒。因此,请思量将以下行添加到 /etc/mysql/my.cnf 设置文件中。
  1. wait_timeout=60
复制代码
启用慢查询日记

你还可以通过记载执行时间过长的查询来进步数据库服务器的性能。这使得更容易排查导致此标题的数据库标题。
要启用慢查询日记,请将以下行添加到 /etc/mysql/my.cnf 设置文件中。
  1. slow-query-log = 1
  2. slow-query-log-file = /var/lib/mysql/mysql-slow.log
  3. long_query_time = 1
复制代码
第一个参数启用慢日记的查询。
第二个参数通知数据库服务器慢查询将导出到的文件。
最后一个参数指定数据库查询的最大阈值(以秒为单元),凌驾该阈值则认为它是慢查询。
结论

在本指南中,你学习了如何成功地在 Ubuntu 22.04 服务器上安装 MariaDB。你已使用 mysql_secure_installation shell 脚本成功安装、启动、启用和掩护了 MariaDB 数据库服务器。我们还进一步研究了一些你可以用来确保数据库服务器最佳性能的最佳实践。查看 官方 MariaDB 文档,以获取有关数据库服务器的其他信息。
我的博客:https://blog.ivwv.site

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表