Ubuntu 安装 MySQL 8.0 + Redis 并开启远程访问

Ubuntu 22 安装 MySQL 8.0 + Redis 并开启远程访问

环境 :Ubuntu 22.04
说明 :所有命令均在 /root 目录下执行(即登录服务器后的默认目录),无需切换目录。


一、准备工作

1.1 更新系统

执行目录 :任意目录
作用:更新软件包列表并升级已有软件,避免安装时出现依赖冲突。

bash 复制代码
sudo apt update && sudo apt upgrade -y

二、安装 MySQL 8.0

2.1 安装 MySQL

执行目录 :任意目录
作用:从 Ubuntu 官方源安装 MySQL Server。

bash 复制代码
sudo apt install mysql-server -y

2.2 启动服务并设置开机自启

执行目录 :任意目录
作用:启动 MySQL 服务,并设置为开机自动启动,重启服务器后无需手动启动。

bash 复制代码
sudo systemctl start mysql
sudo systemctl enable mysql

验证状态

bash 复制代码
sudo systemctl status mysql

看到 Active: active (running)enabled 说明正常。按 q 退出。


2.3 安全初始化

执行目录 :任意目录
作用:删除匿名用户、禁止 root 远程登录、删除测试数据库,提升安全性。

bash 复制代码
sudo mysql_secure_installation

按以下方式回答交互问题:

问题 回答 原因
VALIDATE PASSWORD component? n 我们手动设置强密码,不需要此插件
Remove anonymous users? y 删除匿名用户,避免未授权访问
Disallow root login remotely? y root 只允许本地登录,更安全
Remove test database? y 删除无用的测试数据库
Reload privilege tables? y 使以上设置立即生效

2.4 生成随机强密码

执行目录 :任意目录
作用:生成一个高强度随机密码,用于 MySQL 远程用户。

bash 复制代码
openssl rand -base64 32

⚠️ 立即复制并保存输出的密码,后续步骤会用到。


2.5 创建远程访问用户

执行目录 :任意目录
作用:创建一个允许从任意 IP 远程连接的 MySQL 用户,并授予权限。

先进入 MySQL 控制台:

bash 复制代码
sudo mysql

提示符变为 mysql> 后,逐行执行以下 SQL(将 你的密码 替换为上一步生成的密码):

sql 复制代码
CREATE USER 'remoteuser'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

每行回车执行,看到 Query OK 说明成功。


2.6 修改配置文件开启远程访问

执行目录 :任意目录(修改文件 /etc/mysql/mysql.conf.d/mysqld.cnf
作用 :默认 MySQL 只监听本机 127.0.0.1,改为 0.0.0.0 后允许外部 IP 连接。

bash 复制代码
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Ctrl+W 搜索 bind-address,找到后将该行改为:

复制代码
bind-address = 0.0.0.0

Ctrl+XYEnter 保存退出。


2.7 重启 MySQL 使配置生效

执行目录 :任意目录
作用:重启服务,使修改的配置文件生效。

bash 复制代码
sudo systemctl restart mysql

2.8 开放防火墙端口

执行目录 :任意目录
作用:允许外部通过 3306 端口访问 MySQL,否则即使服务正常运行,外部也无法连接。

bash 复制代码
sudo ufw allow 3306/tcp
sudo ufw reload

2.9 验证 MySQL 远程连接

执行目录 :任意目录
作用:测试刚创建的远程用户是否可以正常连接。

bash 复制代码
mysql -u remoteuser -p -h 127.0.0.1

输入密码后进入 mysql> 说明成功,退出:

sql 复制代码
EXIT;

三、安装 Redis

3.1 安装 Redis

执行目录 :任意目录
作用:从 Ubuntu 官方源安装 Redis Server。

bash 复制代码
sudo apt install redis-server -y

如果遇到报错 dpkg was interrupted,先执行以下命令修复,再重新安装:

bash 复制代码
sudo dpkg --configure -a

3.2 检查服务状态

执行目录 :任意目录
作用:确认 Redis 是否已正常启动。

bash 复制代码
sudo systemctl status redis

看到 Active: active (running) 说明正常。按 q 退出。


3.3 生成随机强密码

执行目录 :任意目录
作用:生成一个高强度随机密码,用于 Redis 认证(与 MySQL 密码不同)。

bash 复制代码
openssl rand -base64 32

⚠️ 立即复制并保存输出的密码


3.4 修改 Redis 配置文件

执行目录 :任意目录(修改文件 /etc/redis/redis.conf
作用:开启远程访问、设置密码、配置 systemd 管理方式。

bash 复制代码
sudo nano /etc/redis/redis.conf

Ctrl+W 搜索关键词,依次做以下 3 处修改

修改 1 :允许远程连接

搜索 bind 127.0.0.1,改为:

复制代码
bind 0.0.0.0

修改 2 :设置访问密码

搜索 requirepass,找到 # requirepass foobared,改为(去掉 #,替换密码):

复制代码
requirepass 你的密码

修改 3 :配置 systemd 管理

搜索 supervised,找到 supervised no,改为:

复制代码
supervised systemd

Ctrl+XYEnter 保存退出。


3.5 重启 Redis 并设置开机自启

执行目录 :任意目录
作用:使配置文件生效,并设置 Redis 开机自动启动。

bash 复制代码
sudo systemctl restart redis
sudo systemctl enable redis

3.6 开放防火墙端口

执行目录 :任意目录
作用:允许外部通过 6379 端口访问 Redis。

bash 复制代码
sudo ufw allow 6379/tcp
sudo ufw reload

3.7 验证 Redis 连接

执行目录 :任意目录
作用:测试 Redis 密码认证是否正常。

bash 复制代码
redis-cli

进入后执行:

复制代码
AUTH 你的密码

返回 OK 说明成功,退出:

复制代码
quit

四、确认开机自启状态

执行目录 :任意目录
作用:最终确认两个服务都已设置为开机自动启动。

bash 复制代码
sudo systemctl is-enabled mysql
sudo systemctl is-enabled redis

两条命令都返回 enabled 即为成功。


五、连接信息汇总

安装完成后,请将以下信息保存到密码管理器:

服务 用户名 密码 端口
MySQL remoteuser 第 2.4 步生成的密码 3306
Redis 无用户名 第 3.3 步生成的密码 6379

六、常用管理命令

操作 MySQL Redis
启动 sudo systemctl start mysql sudo systemctl start redis
停止 sudo systemctl stop mysql sudo systemctl stop redis
重启 sudo systemctl restart mysql sudo systemctl restart redis
查看状态 sudo systemctl status mysql sudo systemctl status redis
查看日志 sudo tail -f /var/log/mysql/error.log sudo tail -f /var/log/redis/redis-server.log
相关推荐
喜欢的名字被抢了30 分钟前
01-Redis 基础篇:从定位到 Key 管理
redis·教程
文人sec40 分钟前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
高级程序源1 小时前
django招聘网站信息爬取与分析系统79704-计算机课程设计、毕业设计
后端·python·mysql·小程序·django·flask·课程设计
Anastasiozzzz1 小时前
重新定义 Agent 基建:Redis 在现代 AI 与智能体系统中的工程实践
java·人工智能·redis·ai
pilifeng12 小时前
Ubuntu Linux 目录结构详解
linux·ubuntu
毕业设计7032 小时前
(免费领源码) SpringBoot 游戏交易平台17600-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·spring boot·mysql·决策树·mybatis·idea·推荐算法
溪语流沙2 小时前
Django + Vue电商项目第001讲:开篇|注册登录加增删改查,那不是电商
redis·python·mysql·docker·typescript·django·vue
努力努力再努力wz2 小时前
【Redis进阶系列】:从主从复制到 Sentinel,一文建立故障检测、Leader 选举与 Failover 的完整心智模型
数据库·redis·缓存
程序员阿黄3 小时前
基于 Django 与 Vue 3 的智能实验室预约系统设计与实现
后端·python·mysql·django·vue·毕设
Wang's Blog3 小时前
Java 项目实战: 外卖平台-后台系统登录功能开发
java·服务器·redis