目录
- [一、安装 MySQL](#一、安装 MySQL)
-
- [1.1 卸载不必要的软件](#1.1 卸载不必要的软件)
- [1.2 检查并删除安装包](#1.2 检查并删除安装包)
- [1.3 获取 MySQL 的官方版本 并 安装配置包](#1.3 获取 MySQL 的官方版本 并 安装配置包)
- [1.4 安装 MySQL 服务](#1.4 安装 MySQL 服务)
- [1.5 配置 my.cnf](#1.5 配置 my.cnf)
- [二、配置 MySQL 允许远程连接](#二、配置 MySQL 允许远程连接)
-
- [2.1 创建远程连接用户并授权](#2.1 创建远程连接用户并授权)
- [2.2 检查防火墙](#2.2 检查防火墙)
- [2.3 验证监听状态](#2.3 验证监听状态)
- [2.4 在 `Navicat` 中连接](#2.4 在
Navicat中连接)

个人主页:矢望
个人专栏:C++、Linux、C语言、数据结构、Coze-AI、MySQL
一、安装 MySQL
我使用的云服务器环境是 Ubuntu 22.04。
1.1 卸载不必要的软件
首先要检查你的环境中是否有mariadb存在,如果有就停止 mariadb 服务systemctl stop mariadb.service。因为MySQL和MariaDB默认都使用3306端口,它们不能同时运行。某些情况下,MySQL和MariaDB的包可能会相互干扰。

1.2 检查并删除安装包
如果你只是想换个版本重新安装,或者彻底清理系统,通常建议把安装包和相关残留都卸载干净。
查询MySQL的安装包dpkg -l | grep mysql。

删除所有以 mysql 开头的已安装包sudo apt purge mysql*。

1.3 获取 MySQL 的官方版本 并 安装配置包
官方链接:http://repo.mysql.com/(点击跳转)。
这个官网的页面显示不清楚,我们可以单击右键选择查看页面源代码。


如上图,选择适配你的环境的MySQL版本进行下载。

如上图,接下来,选择你下载的MySQL版本,导入到你的机器的相关目录下。

接下来就是安装配置包sudo dpkg -i ~/MySQL/mysql-apt-config_0.8.33-1_all.deb。
在接下来的页面种首先选择mysql-8.0,然后就会跳转到下图的页面,选择OK就好了。


如上,已安装成功。
查询配置包dpkg -l | grep mysql和dpkg -l | grep mysql-apt-config等。

1.4 安装 MySQL 服务
首先更新源sudo apt update,让 MySQL 官方源生效。

如上,发生了报错,原因是系统里存的MySQL公钥已失效/过期,需要换成新的。
更新新的密钥之后,再次尝试安装。安装成功之后会跳转到设置root密码页面,这里的密码一定要记住。


如上图,配置完密码之后选择它的默认认证方式就安装好了。
检查 MySQL 是否运行 systemctl status mysql。

执行mysql -u root -p后,如果你使用了刚刚配置的密码登录,但是被拒绝了,可以使用sudo mysql直接免密登录,这是Ubuntu平台下的特色。

如上图,如果免密能登上,说明你的 MySQL 正常运行,只是 root 用户的认证方式被设成了 auth_socket,所以用 sudo mysql 可以免密登录,但用密码登录会报错。
现在可以进行设置密码。
cpp
1. 查看当前认证方式, 确认一下
SELECT user, host, plugin FROM mysql.user WHERE user='root';
2. 设置新密码, 把 '你的新密码' 换成你想设的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你的新密码';
3. 刷新权限
FLUSH PRIVILEGES;
4. 退出
EXIT;
如下,再次进行mysql -u root -p。

现在这个 Ubuntu 22.04 上已经有了一个完整可用的 MySQL 8.0 环境。
1.5 配置 my.cnf
ls -l /etc/mysql/my.cnf查找配置文件。

使用vim /etc/mysql/my.cnf配置它。

配置完成之后重启MySQL,sudo systemctl restart mysql。

还有就是设置一些开机自启动等等,这些如果在云服务器上可以不设置。
bash
#开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload
二、配置 MySQL 允许远程连接
2.1 创建远程连接用户并授权
登录到你的MySQL,依次进行下面的工作。
cpp
1、创建一个可以从任何IP连接的用户
CREATE USER '用户名remote_user'@'%' IDENTIFIED BY '用户密码your_password';
2、授予该用户所有数据库的全部权限(根据实际需求调整)
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
3、刷新权限使生效
FLUSH PRIVILEGES;
4、退出MySQL
EXIT;
2.2 检查防火墙
查看防火墙状态sudo ufw status。

如果防火墙是开启的,需要开放3306端口,执行sudo ufw allow 3306/tcp和sudo ufw reload,如上,我的是关闭的不用执行这些指令,如果配置改了可以重启mysql,sudo systemctl restart mysql。
2.3 验证监听状态
执行sudo ss -tlnp | grep 3306。

输出应该是 :::3306(IPv6)或 0.0.0.0:3306(IPv4),说明监听所有接口,没问题。
2.4 在 Navicat 中连接
Navicat Premium Lite 是 Navicat 推出的官方免费版 数据库管理工具,相当于一个图形化的"数据库万能遥控器",让你通过鼠标点击就能轻松管理 MySQL、PostgreSQL、SQL Server 等多种数据库,而不用记忆复杂的命令行。它具备可视化表设计、智能 SQL 编辑、数据导入导出 等核心功能,同时支持 SSH 隧道加密连接 ,确保远程访问的安全性。对于刚完成 MySQL 安装、需要进行日常数据管理的个人开发者来说,核心功能完全够用,是替代命令行的高效工具。
官方下载链接:https://www.navicat.com.cn/download/navicat-premium-lite(点击跳转)。
打开 Navicat Premium Lite,新建 MySQL 连接,填写内容。
这里可以选用配置SSH隧道进行连接,首先将你的主机的IP、云服务器的用户和用户密码进行填写。

填写完成之后,再点击常规选项,给你的连接取名称,然后使用你在Ubuntu设置好的MySQL远程连接用户进行连接。填写好后点击这个新建连接页面下面的测试连接测试一下,测试成功后会看到上面的连接亮了,如下。

点确定建立连接后,双击即可连接。

这样一来就可以远程连接了。这样配置后即使IP变化也不影响连接,体现了SSH隧道的优势。
总结:
以上就是本期博客分享的全部内容啦!如果觉得文章还不错的话可以三连支持一下,你的支持就是我前进最大的动力!
技术的探索永无止境! 道阻且长,行则将至!后续我会给大家带来更多优质博客内容,欢迎关注我的CSDN账号,我们一同成长!
(~ ̄▽ ̄)~