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+X → Y → Enter 保存退出。


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+X → Y → Enter 保存退出。


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
相关推荐
fengkai454517 分钟前
十二、Redis -2
运维·数据库·redis·容器
hweiyu0022 分钟前
Redis命令:BLPOP
redis·缓存
夏虫不可与之言冰1 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商
敲个大西瓜1 小时前
langchain笔记(一)
redis·笔记·langchain
java1234_小锋3 小时前
【技术专题】Mysql8 数据库 - Mysql8 触发器
数据库·mysql·mysql8
雨落在了我的手上5 小时前
MySQL数据库基础(6):增删改查操作(1)
数据库·mysql
人生百态,人生如梦5 小时前
Ubuntu在低版本下使用ccswitch+claudecode(CCSwitch+Docker+Claude)连调教程
linux·ubuntu·docker·claudecode·ccswitch
ao-weilai5 小时前
MySQL数据库:用户管理
数据库·mysql·adb
小小龙学IT6 小时前
C++ Redis 客户端深度解析(hiredis 与 redis-plus-plus)——工业数采实时缓存 C++ 侧实战
c++·redis·缓存
mengge.cloud6 小时前
Redis
运维·服务器·数据库·redis·缓存·云计算