自学内容网 自学内容网

在 WSL2 Ubuntu22.04环境安装 MySQL

一、安装步骤

1.1. 确保/etc/apt/sources.list源配置文件一切正常

sudo nano /etc/apt/sources.list

需要包括以下内容

deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse

1.2. 更新系统

确保 WSL 上的 Linux 发行版是最新的。打开 WSL 终端,执行以下两条命令更新系统:

检查更新

sudo apt update

更新

sudo apt upgrade -y

1.3. 安装 MySQL

接下来,安装 MySQL 的服务器和客户端。

sudo apt install mysql-server -y

1.4. 配置 MySQL

安装完成后,MySQL 需要进行基本的配置。运行 MySQL 的安全配置脚本:

sudo mysql_secure_installation

这将引导你设置 root 密码、删除匿名用户、禁止 root 远程登录等安全配置。

1.5. 启动 MySQL 服务

启动 MySQL 服务:

sudo service mysql start

你可以使用以下命令检查 MySQL 服务的状态:

sudo service mysql status

1.6. 登录 MySQL

成功启动 MySQL 后,可以使用以下命令登录到 MySQL:

sudo mysql -u root -p

输入你在配置中设置的 root 密码。

1.7. 设置 MySQL 开机自启

如果你希望 MySQL 在每次启动 WSL 时自动启动,可以设置它为开机自启:

sudo systemctl enable mysql

1.8. (可选) 修改 MySQL 配置以允许远程访问

如果想让 MySQL 允许远程连接,需要修改 MySQL 的配置文件 my.cnf。打开配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address 修改为 0.0.0.0,允许任何主机连接:

bind-address = 0.0.0.0

保存并退出编辑器。

然后,重启 MySQL 服务:

sudo service mysql restart

此时,你可以从远程机器连接到 MySQL 服务了。

1.9. 测试 MySQL 是否正常工作

在 MySQL 中创建一个测试数据库:

CREATE DATABASE testdb;

查看是否可以创建数据库:

SHOW DATABASES;

如果能看到 testdb 数据库,说明 MySQL 安装成功。

二、出现的问题/报错以及解决方式

2.1. 错误提示 E: Unable to locate package mysql-community-server

在 WSL2 中安装 MySQL 时,错误提示 E: Unable to locate package mysql-community-server 是因为 MySQL 的 mysql-community-server 包不在 Ubuntu 的默认软件源中。确认1.1中的检查/etc/apt/sources.list已做,需要启用 Ubuntu 的官方存储库,并配置 MySQL 的相关存储库。

如果都没有的话,就手动添加MySQL APT存储库

2.1.1. 添加 MySQL APT 存储库

首先,下载并安装 MySQL APT 存储库配置包,以便从官方源获取 MySQL。

wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb

在安装过程中,它会提示你选择 MySQL 的版本。你可以选择默认的(通常是最新的稳定版)。

在这里插入图片描述

最外面的三个选项均需要进入确认一遍!

MySOL Server & cluster(Currently selected: mysql-8.0)

MySOL Tools & Connectors(Currently selected: Enabled)

MySQL Preview Packages(currently selected: Disabled)

Ok

确认当前的选项是否正确配置,最后选择OK,即完成安装。

MySOL Server & cluster(**Currently selected: mysql-8.0**)选项内部截图

2.1.2. 更新 APT 包列表

添加完 MySQL APT 存储库后,更新系统的软件包列表:

sudo apt update

可以更新表示添加成功。

2.2. 错误提示The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B7B3B788A8D3785C

在系统已经添加MySQL存储库后,执行sudo apt update这条命令,报错如下

root@LAPTOP-SIC0EVBG:/home/yyq# sudo apt update
Ign:1 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal InRelease                                                                           
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu focal InRelease [4685 B]                                                                 
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal Release [3797 B]                               
Get:4 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal Release.gpg [833 B]                                   
Get:5 https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal InRelease [57.7 kB]                       
Get:6 http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu focal/main amd64 Packages [1193 kB]
Get:7 https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal/stable amd64 Packages [51.8 kB]
Get:8 http://repo.mysql.com/apt/ubuntu focal InRelease [12.8 kB]                         
Err:8 http://repo.mysql.com/apt/ubuntu focal InRelease                                              
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B7B3B788A8D3785C
Get:9 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal/main amd64 Packages [826 kB]
Reading package lists... Done    
W: GPG error: http://repo.mysql.com/apt/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B7B3B788A8D3785C
E: The repository 'http://repo.mysql.com/apt/ubuntu focal InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

这个错误提示表示 APT 无法验证 MySQL 官方仓库的 GPG 密钥,因此无法安全地从该仓库获取软件包。要解决这个问题,你需要手动添加 MySQL 公共 GPG 密钥。以下是具体的解决步骤:

2.2.1. 下载并添加 MySQL 公共 GPG 密钥

执行以下命令来下载并添加 MySQL 官方的 GPG 密钥:

curl -fsSL https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | sudo tee /etc/apt/trusted.gpg.d/mysql.asc

2.2.2. 确认密钥文件存在

cat /etc/apt/trusted.gpg.d/mysql.asc

要确认这里输出的内容与上面curl命令输出相同的 PGP PUBLIC KEY BLOCK 内容。确保密钥内容没有被截断。

2.2.3. 确保 MySQL 仓库使用正确的密钥

MySQL 仓库配置不能缺少 signed-by 参数,指向刚才添加的 GPG 密钥,所以要再次检查mysql.list文件

sudo nano /etc/apt/sources.list.d/mysql.list

确保里面的内容是

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out entries below, but any other modifications may be lost.
# Use command 'dpkg-reconfigure mysql-apt-config' as root for modifications.
deb [signed-by=/etc/apt/trusted.gpg.d/mysql.asc] http://repo.mysql.com/apt/ubuntu/ focal mysql-apt-config
deb [signed-by=/etc/apt/trusted.gpg.d/mysql.asc] http://repo.mysql.com/apt/ubuntu/ focal mysql-8.0
deb [signed-by=/etc/apt/trusted.gpg.d/mysql.asc] http://repo.mysql.com/apt/ubuntu/ focal mysql-tools
#deb [signed-by=/etc/apt/trusted.gpg.d/mysql.asc] http://repo.mysql.com/apt/ubuntu/ focal mysql-tools-preview
deb-src [signed-by=/etc/apt/trusted.gpg.d/mysql.asc] http://repo.mysql.com/apt/ubuntu/ focal mysql-8.0

保存并退出编辑器(按 Ctrl + X,然后按 Y,最后按 Enter)。

接着可以成功更新软件包列表

然后,你可以再次更新软件包列表:

sudo apt update

如果没有出现错误,说明 GPG 密钥已经成功添加。


原文地址:https://blog.csdn.net/m0_61780496/article/details/143798354

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!