按照本指南学习如何在 Debian 11 上安装 MariaDB 10.6。“MariaDB 10.6 是 MariaDB 的当前稳定系列。 它是 MariaDB 10.5 的演变,具有几个全新的功能和改进”。
在 Debian 11 上安装 MariaDB 10.6
运行系统更新
假设您在新安装的 Debian 11 上安装 MariaDB 10.6,请更新和升级您的系统包。
apt update
apt upgrade
您可以通过两种方法在 Debian 11 上安装 MariaDB 10.6;
- 从 MariaDB APT 存储库在 Debian 11 上安装 MariaDB 10.6
- 使用 MariaDB .DEB 二进制文件在 Debian 11 上安装 MariaDB 10.6
从 APT 存储库安装 MariaDB 10.6
MariaDB 10.5 是默认 Debian 11 存储库上的当前可用版本;
apt show mariadb-server
Package: mariadb-server Version: 1:10.5.11-1 Priority: optional Section: database Source: mariadb-10.5 Maintainer: Debian MySQL Maintainers Installed-Size: 72.7 kB Depends: mariadb-server-10.5 (>= 1:10.5.11-1) Homepage: https://mariadb.org/ Tag: devel::lang:c++, devel::lang:sql, devel::library, implemented-in::c++, interface::commandline, interface::daemon, network::server, protocol::db:mysql, role::devel-lib, role::metapackage, role::program, works-with::db Download-Size: 34.8 kB APT-Sources: https://deb.debian.org/debian bullseye/main amd64 Packages @lists.alioth.debian.org>
因此,要安装 MariaDB 10.6,您需要安装 MariaDB 10.6 APT 存储库。
在 Debian 11 上安装 MariaDB 10.6 APT 存储库
执行以下命令安装 MariaDB 10.6 APT repos;
apt install software-properties-common dirmngr
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
接下来,前往 MariaDB 存储库站点以选择您的镜像。
选择您的 Linux 发行版、发行版、要安装的 MariaDB 版本,最后选择要使用的镜像。
例如,要使用 UKfast 镜像,请运行以下命令;
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirrors.ukfast.co.uk/sites/mariadb/repo/10.6/debian bullseye main'
重新同步您的包缓存;
apt update
安装 MariaDB 10.6;
apt install mariadb-server
使用 .DEB 二进制文件安装 MariaDB 10.6
虽然这不是安装 MariaDB 的推荐方式,但您也可以下载 .deb 二进制文件并安装它。
按照下面的链接了解如何使用 .deb 文件安装 MariaDB。
使用 deb 二进制文件安装 MariaDB
验证 MariaDB 安装的版本
要检查已安装的 MariaDB 的版本,请运行以下命令;
mysql -V
mysql Ver 15.1 Distrib 10.6.4-MariaDB, for debian-linux-gnu (x86_64) using readline EditLine wrapper
在 Debian 11 上运行 MariaDB 10.6
安装后,MariaDB 启动并允许在系统启动时运行;
systemctl status mariadb
● mariadb.service - MariaDB 10.6.4 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Sat 2021-08-21 08:44:32 EAT; 5min ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 3466 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 3467 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 3469 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-en> Process: 3529 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 3531 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 3516 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 9 (limit: 1133) Memory: 86.2M CPU: 2.201s CGroup: /system.slice/mariadb.service └─3516 /usr/sbin/mariadbd Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[3536]: Phase 6/7: Checking and upgrading tables Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[3536]: Processing databases Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[3536]: information_schema Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[3536]: performance_schema Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[3536]: sys Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[3536]: sys.sys_config OK Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[3536]: Phase 7/7: Running 'FLUSH PRIVILEGES' Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[3536]: OK Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[4552]: Checking for insecure root accounts. Aug 21 08:49:47 debian11.kifarunix-demo.com /etc/mysql/debian-start[4556]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
您可以通过 systemctl 命令管理服务。
例如,停止 MariaDB 服务;
systemctl restart mariadb
停止服务;
systemctl stop mariadb
禁止服务在系统启动时运行;
systemctl disable mariadb
保护 MariaDB 10.6
MariaDB 带有一个默认的安全脚本, mysql_secure_installation
用于通过以下方式提高 MariaDB 安装的安全性:
- 设置 root 帐户的密码(如果需要)。
- 禁用远程 root 登录到数据库。
- 删除匿名用户帐户。
- 删除测试数据库,默认情况下匿名用户可以访问该数据库。
只需运行以下命令即可启动脚本。
mysql_secure_installation
MariaDB 身份验证
MariaDB 的新安装在安装过程中创建了两个安全帐户。
账户是 [email protected]
和 [email protected]
.
两个帐户都使用 unix_socket
和 mysql_native_password
身份验证插件。
unix_socket
身份验证插件允许系统 root
用户或 user with sudo rights
登录为 [email protected]
无需密码即可访问 MariaDB 数据库。
和 unix_socket
身份验证插件,作为 root 用户,您只需运行以下任一命令即可登录;
mysql
或者
mysql -u root
就算跑了, mysql -u root -p
, 然后按 ENTER 输入空白密码,您仍将登录。
作为用户 sudo 权限,在上面的命令前面加上 sudo
.
启用 MariaDB 密码身份验证
这 mysql_native_password
插件用作故障转移 unix_socket
插入。 但是,该帐户的密码无效。 要启用密码验证,您需要如上所示以 root 用户身份登录 MariaDB 并设置密码。
mysql
set password = password("[email protected]");
flush privileges; quit
这将重新启用 MariaDB 密码身份验证,因此,您现在可以以非 root 或非 root 身份登录 sudo 用户。
[email protected]:~$ mysql -u root -p Enter password: ENTER PASSWORD
Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 57 Server version: 10.6.4-MariaDB-1:10.6.4+maria~bullseye mariadb.org binary distribution 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)]>
同样,您可以以 mysql 用户身份登录;
sudo -u mysql mysql
将本机密码验证方法设置为默认值
完全禁用 unix_socke
t 身份验证插件,而是使用 msqyl_native_password
身份验证方法,只需登录 MariaDB 并更改身份验证插件即可 根 用户。
mysql
ALTER USER [email protected] IDENTIFIED VIA mysql_native_password USING PASSWORD("MyPQQSSword");
flush privileges; quit
下次尝试不指定密码登录时,登录将失败。
sudo mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
这标志着我们关于如何在 Debian 11 上安装 MariaDB 10.6 的指南的结束。
在 FreeBSD 13 上安装 MariaDB 10.5
在 Rocky Linux 8 上安装 MariaDB 10.x