按照本指南学习如何在 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;
从 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: http://deb.debian.org/debian bullseye/main amd64 Packages
因此,要安装 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。
验证 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 的新安装在安装过程中创建了两个安全帐户。
帐户是 root@localhost
和 mysql@localhost
。
两个帐户都使用 unix_socket
和 mysql_native_password
身份验证插件。
unix_socket
身份验证插件允许系统 root
用户或 a 无需密码user with sudo rights
即可登录 root@locahost
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("P@sSw0Rd123");
flush privileges;
quit
这将重新启用 MariaDB 密码身份验证,因此,您现在可以以非 root 或非 sudo 用户身份登录。
koromicha@debian:~$ 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 并更改root 用户的身份验证插件 。
mysql
ALTER USER root@localhost 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 的指南的结束。