ubuntu24.4下载mysql报错解决、下载maraiDB
vawet@k8s-node-02:~$ sudo apt update
获取:1 http://repo.mysql.com/apt/ubuntu noble InRelease [22.7 kB]
获取:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
命中:3 http://archive.ubuntu.com/ubuntu noble InRelease
错误:1 http://repo.mysql.com/apt/ubuntu noble InRelease
由于没有公钥,无法验证下列签名: NO_PUBKEY B7B3B788A8D3785C
获取:4 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
命中:5 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu noble InRelease
获取:6 http://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
正在读取软件包列表… 完成
W: GPG 错误:http://repo.mysql.com/apt/ubuntu noble InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY B7B3B788A8D3785C
E: 仓库 “http://repo.mysql.com/apt/ubuntu noble InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
E: http://security.ubuntu.com/ubuntu/dists/noble-security/InRelease 的 Release 文件已经过期(已经过期了 16小时 33分 6秒)。该仓库的更新将不会应用。
E: http://archive.ubuntu.com/ubuntu/dists/noble-updates/InRelease 的 Release 文件已经过期(已经过期了 16小时 34分 39秒)。该仓库的更新将不会应用。
E: http://archive.ubuntu.com/ubuntu/dists/noble-backports/InRelease 的 Release 文件已经过期(已经过期了 16小时 37分 2秒)。该仓库的更新将不会应用。
vawet@k8s-node-02:~$ sudo apt install mysql-server-5.7
正在读取软件包列表… 完成
正在分析软件包的依赖关系树… 完成
正在读取状态信息… 完成
没有可用的软件包 mysql-server-5.7,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
然而下列软件包会取代它:
mariadb-test mariadb-server mariadb-client
E: 软件包 mysql-server-5.7 没有可安装候选
展示解决方案:
- 导入缺失的GPG公钥(最后的字符串是错误提示中的公钥ID)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C - 我的ubuntu已经很难兼容mysql5版本了
- 所以我打算试探一下MariaDB 这个是MYSQL的一个分支;
在安装MariaDB之前,清理MySQL的残留缓存和配置文件可以避免冲突,确保MariaDB正常安装。具体步骤如下:
步骤1:彻底卸载MySQL(若之前前安装过)
如果之前尝试安装过MySQL但未成功,先彻底卸载残留组件:
# 停止可能运行的MySQL服务
sudo systemctl stop mysql mysqld 2>/dev/null# 卸载MySQL相关包(包括配置文件)
sudo apt purge -y mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*# 清理残留文件和依赖
sudo apt autoremove -y
sudo apt autoclean# 删除MySQL数据目录和配置残留
sudo rm -rf /var/lib/mysql /var/log/mysql /etc/mysql
步骤2:清理APT缓存(关键步骤)
清理APT缓存中MySQL的残留信息,避免安装MariaDB时冲突:
# 清理APT缓存的过期包
sudo apt clean# 删除APT缓存的索引文件(强制重新生成)
sudo rm -rf /var/lib/apt/lists/*# 重新更新APT索引(此时会重新拉取源信息,不包含MySQL残留)
sudo apt update
步骤3:安装MariaDB
完成上述清理后,再执行安装命令:
sudo apt install -y mariadb-server
sudo systemctl start mariadb
sudo mysql_secure_installation # 按提示设置root密码、移除匿名用户等
说明:
- 清理
/var/lib/mysql会删除MySQL的数据库文件(若有重要数据需提前备份); - 执行
apt purge而非apt remove,可彻底删除配置文件,避免残留配置影响MariaDB; - 清理APT缓存后,
apt update会重新拉取源信息,确保安装的是干净的MariaDB包。
按此流程操作后,MariaDB可正常安装并使用你之前的 config.yaml 配置~
安装好MariaDB后,进入数据库并创建search-engine数据库的步骤如下:
步骤1:登录MariaDB(类似MySQL的操作)
在终端执行以下命令,用root用户登录MariaDB:
sudo mysql -u root -p
- 执行后会提示输入密码(即你在
mysql_secure_installation步骤中设置的root密码),输入后回车即可进入数据库命令行(显示MariaDB [(none)]>提示符)。
步骤2:创建search-engine数据库
在MariaDB命令行中,执行创建数据库的SQL语句(注意用反引号包裹带连字符的名称):
CREATE DATABASE IF NOT EXISTS `search-engine`;
IF NOT EXISTS表示:如果数据库已存在,不会报错(避免重复创建的错误);- 反引号
`用于处理数据库名中的-符号(否则会被解析为语法错误)。
执行成功后,会提示 Query OK, 1 row affected (0.00 sec)。
步骤3:验证数据库是否创建成功
查看所有数据库,确认search-engine已存在:
SHOW DATABASES;
输出结果中会包含 search-engine,表示创建成功。
步骤4:退出MariaDB
完成操作后,输入以下命令退出数据库命令行:
exit;
这样就完成了登录MariaDB并创建search-engine数据库的操作,后续你的程序可以通过config.yaml中的配置直接连接该数据库~
