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
相关推荐
Thanks_ks3 小时前
分布式系统中的并发控制与分布式锁机制深度剖析
redis·zookeeper·高并发·分布式锁·架构设计·并发控制·分布式系统
草莓熊Lotso4 小时前
Vibe Coding 时代:LangChain 与 LangGraph 全链路解析
linux·运维·服务器·数据库·人工智能·mysql·langchain
Java开发的小李10 小时前
SpringBoot + Redis 实现分布式 Session 共享(解决多实例登录状态丢失问题)
spring boot·redis·分布式
Ujimatsu11 小时前
虚拟机安装Debian 13.x及其常用软件(2026.4)
linux·运维·ubuntu
daixin884812 小时前
cursor无法正常使用gpt5.5等模型解决方案
java·redis·cursor
WinterKay13 小时前
【开源】我写了一个轻量级本地数据库浏览工具,支持 MySQL/Redis 只读查询
数据库·mysql·开源
拾贰_C13 小时前
【Agent | openai | Streaming | 】流式输出Streaming
ubuntu·面试·prompt
小猿姐13 小时前
Redis Kubernetes Operator 实测:三个方案的真实差距
redis·容器·kubernetes
程序猿乐锅15 小时前
【Tilas|第三篇】多表SQL语句
数据库·经验分享·笔记·学习·mysql