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,先执行以下命令修复,再重新安装:
bashsudo 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 |