Debian安装MySQL
前排提醒:内存较小的Debian需要事先添加swap,否则会有卡死的风险。
安装MariaDB
Debian不支持MySQL,自带MariaDB源可以兼容,如需直接MySQL跳过此节。
apt update
apt install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb
设置 root 密码:
mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
MariaDB安装完毕并配置好密码后尝试导入原先MySQL 8导出的SQL:
root@hcss-ecs-58f8:/# mysql -u root -p < /20260414_backup/backup.sql Enter password: -------------- CREATE DATABASE /*!32312 IF NOT EXISTS*/ mysql /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ -------------- ERROR 1273 (HY000) at line 24: Unknown collation: 'utf8mb4_0900_ai_ci'
sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' /20260414_backup/backup.sql
mysql -u root -p < /20260414_backup/backup.sql
报错:ERROR 1050: Table ‘user’ already exists
导入的是 整个数据库(包含 mysql 系统库)
而 MariaDB 已经自带了:
mysql.user
mysql.db
mysql.tables_priv
所以冲突了,过滤掉 mysql 库:
grep -v "mysql." /20260414_backup/backup.sql > clean.sql
但是此法会过滤掉所需的数据库。建议安装原生MySQL
安装MySQL
卸载MariaDB
apt remove --purge -y mariadb-server mariadb-client
apt autoremove -y
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
dpkg -i mysql-apt-config_0.8.29-1_all.deb
确认:
MySQL Server & Cluster (mysql-8.0) ← 选这个
apt update
MySQL 官方 GPG key 过期了
rm -f /etc/apt/trusted.gpg.d/mysql.gpg
wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
gpg --dearmor < RPM-GPG-KEY-mysql-2022 > /usr/share/keyrings/mysql.gpg
修改 MySQL 源
vim /etc/apt/sources.list.d/mysql.list
找到类似:
deb http://repo.mysql.com/apt/debian/ bookworm mysql-8.0
改成:
deb [signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/debian/ bookworm mysql-8.0
apt update
从 MySQL 官方仓库索引看,repo.mysql.com 现在已经提供了 RPM-GPG-KEY-mysql-2025,而你报错缺的是 B7B3B788A8D3785C 这把 MySQL Release Engineering 的签名公钥。官方仓库首页也能看到 2025 的 key 文件已经存在。
rm -f /usr/share/keyrings/mysql.gpg
wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2025
gpg --dearmor < RPM-GPG-KEY-mysql-2025 > /usr/share/keyrings/mysql.gpg
apt update
现在开始安装MySQL
apt install -y mysql-server