在 Ubuntu 环境下安装 MySQL

目录

  • [一、安装 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++LinuxC语言数据结构Coze-AIMySQL

一、安装 MySQL

我使用的云服务器环境是 Ubuntu 22.04

1.1 卸载不必要的软件

首先要检查你的环境中是否有mariadb存在,如果有就停止 mariadb 服务systemctl stop mariadb.service。因为MySQLMariaDB默认都使用3306端口,它们不能同时运行。某些情况下,MySQLMariaDB的包可能会相互干扰。

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 mysqldpkg -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配置它。

配置完成之后重启MySQLsudo 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/tcpsudo ufw reload,如上,我的是关闭的不用执行这些指令,如果配置改了可以重启mysqlsudo systemctl restart mysql

2.3 验证监听状态

执行sudo ss -tlnp | grep 3306

输出应该是 :::3306(IPv6)或 0.0.0.0:3306(IPv4),说明监听所有接口,没问题。

Navicat Premium LiteNavicat 推出的官方免费版 数据库管理工具,相当于一个图形化的"数据库万能遥控器",让你通过鼠标点击就能轻松管理 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账号,我们一同成长!
(~ ̄▽ ̄)~

相关推荐
泯仲2 小时前
从零起步学习MySQL || 第十五章:MySQL 可重复读隔离级别:它是如何工作的?是否完全解决幻读?
android·学习·mysql
草莓熊Lotso2 小时前
MySQL CRUD 核心指南:查询、插入、更新、删除全实战
android·开发语言·数据库·c++·人工智能·mysql
轩情吖2 小时前
MySQL之表的约束
android·数据库·c++·后端·mysql·开发·约束
Yupureki2 小时前
《MySQL数据库基础》4. 数据类型
c语言·开发语言·数据结构·数据库·c++·mysql
码农多耕地呗2 小时前
本地-导表导错数据库,导致数据库数据混乱问题
数据库·mysql
想搞艺术的程序员2 小时前
MySQL EXPLAIN 中 type 字段详解
数据库·mysql·explain
YQ_013 小时前
Windows + Ubuntu 双系统安装:不使用 GRUB,直接在开机时选择系统
linux·windows·ubuntu
灰阳阳3 小时前
Spring Boot+Nginx+MySQL容器化实战
spring boot·mysql·nginx
Chuncheng's blog3 小时前
Ubuntu 24.04 ISO国内镜像下载(ARM / AMD64)
arm开发·ubuntu