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
相关推荐
三十..7 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
cfm_29148 小时前
Redis五大基本数据结构底层了解
数据结构·数据库·redis
真实的菜8 小时前
Redis 从入门到精通(十二):典型业务场景实战 —— 排行榜、限流器、秒杀系统、Session 共享
数据库·redis·python
你想考研啊9 小时前
mysql数据库导出导入
数据库·mysql·oracle
十年编程老舅9 小时前
Linux DRM:底层逻辑与实践架构
数据库·mysql
AOwhisky12 小时前
MySQL 学习笔记(第六期):MySQL 备份与恢复
运维·数据库·笔记·学习·mysql·云计算
j_xxx404_12 小时前
MySQL表操作硬核解析:从 CREATE TABLE 到磁盘文件、ALTER TABLE 与 DDL 风险
运维·服务器·数据库·c++·mysql·adb·ai
Fanta丶12 小时前
19.Mysql覆盖索引、前缀索引
mysql
x***r15113 小时前
Redis Desktop Manager 0.8.8 安装教程(Windows redis-desktop-manager-0.8.8.384详细步骤)
数据库·windows·redis
梦想的旅途213 小时前
企业微信API实现外部群消息异步推送的技术架构与实践
mysql·架构·企业微信