根据您的需求,我将为您提供一个详细的旧有结构调整方案。以下是分步解决方案:
1. 整体架构规划
当前架构:
“`
用户 -> Apache + PHP7.4 -> 网站A/B
“`
目标架构:
继续阅读“旧结构增加nginx反向代理”根据您的需求,我将为您提供一个详细的旧有结构调整方案。以下是分步解决方案:
1. 整体架构规划
当前架构:
“`
用户 -> Apache + PHP7.4 -> 网站A/B
“`
目标架构:
继续阅读“旧结构增加nginx反向代理”# Ubuntu服务器多网站部署 – 完整标准操作手册
# 使用root新增用户
# 创建用户(会交互式提示设置密码和用户信息)
sudo adduser username
sudo tailscale up –advertise-exit-node
sudo tailscale up –exit-node=100.88.88.250 –accept-dns=false –exit-node-allow-lan-access
sudo tailscale up –exit-node=100.88.88.250 –accept-dns=false
sudo tailscale up –exit-node= –accept-dns=false
sudo tailscale up –exit-node=
sudo tailscale up –reset –exit-node=100.88.88.250
新安装的 Linux 系统无法 SSH 连接,通常是由于 SSH 服务未安装或未启动。请按以下步骤排查:
# 检查 SSH 服务是否安装
systemctl status ssh # Ubuntu/Debian
systemctl status sshd # CentOS/RHEL/Fedora
# 如果没有安装,先安装
sudo apt install openssh-server # Debian/Ubuntu
sudo yum install openssh-server # CentOS/RHEL
sudo dnf install openssh-server # Fedora
# 启动服务
sudo systemctl start ssh # Ubuntu/Debian
sudo systemctl start sshd # CentOS/RHEL/Fedora
# 设置开机自启
sudo systemctl enable ssh # Ubuntu/Debian
sudo systemctl enable sshd # CentOS/RHEL/Fedora
# 查看防火墙状态
sudo ufw status # Ubuntu (如果使用UFW)
sudo firewall-cmd --state # CentOS/RHEL/Fedora (firewalld)
sudo iptables -L # 检查iptables规则
# 开放22端口
sudo ufw allow 22 # Ubuntu
sudo firewall-cmd --add-port=22/tcp --permanent # CentOS/RHEL
sudo firewall-cmd --reload
# 检查配置文件
sudo nano /etc/ssh/sshd_config
# 确保以下设置正确:
# PermitRootLogin yes(如果要以root登录)
# PasswordAuthentication yes(如果要用密码登录)
# Port 22(默认端口)
# 修改后重启服务
sudo systemctl restart ssh/sshd
# 检查SSH是否在监听22端口
sudo netstat -tlnp | grep :22
ss -tlnp | grep :22
如果你使用的是云服务器(AWS/Azure/阿里云/腾讯云等):
# 在同一网络内先用局域网IP测试
ifconfig 或 ip addr # 查看本机IP
# 从另一台机器测试连接
ssh username@服务器IP
# 查看SSH服务日志
sudo journalctl -u ssh -f
sudo tail -f /var/log/auth.log # Ubuntu
sudo tail -f /var/log/secure # CentOS/RHEL
· 权限问题:确保用户家目录权限正确(chmod 700 ~/.ssh)
· SELinux问题(CentOS/RHEL):
sudo setsebool -P sshd_full_access on
sudo restorecon -Rv /etc/ssh
· 密码认证被禁用:修改sshd_config中PasswordAuthentication yes
请告诉我:
这样我能提供更针对性的帮助。
这些错误表明系统无法解析到您配置的镜像域名(mirrors.tuna.tsinghua.edu.cn 和 mirrors.aliyun.com)。这通常是由于网络连接问题或DNS解析问题导致的。请按照以下步骤排查解决:
ping -c 4 8.8.8.8
· 如果能ping通IP,说明网络连接正常,问题可能是DNS
· 如果无法ping通,检查网络配置或联系网络管理员
nslookup mirrors.tuna.tsinghua.edu.cn
nslookup mirrors.aliyun.com
如果无法解析,说明DNS有问题。
先切换回Ubuntu官方源:
# 备份当前源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
# 恢复为官方源(适用于Ubuntu 22.04 Jammy)
sudo tee /etc/apt/sources.list << 'EOF'
deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
EOF
# 清理旧的包列表
sudo rm -rf /var/lib/apt/lists/*
sudo apt clean
# 更新源
sudo apt update
如果清华镜像有问题,可以尝试其他镜像:
方法一:使用阿里云镜像
sudo sed -i 's/http:\/\/mirrors.tuna.tsinghua.edu.cn\/ubuntu/https:\/\/mirrors.aliyun.com\/ubuntu/g' /etc/apt/sources.list
方法二:使用华为云镜像
sudo sed -i 's/http:\/\/mirrors.tuna.tsinghua.edu.cn\/ubuntu/https:\/\/repo.huaweicloud.com\/ubuntu/g' /etc/apt/sources.list
方法三:手动编辑源文件
sudo nano /etc/apt/sources.list
将文件中所有的 mirrors.tuna.tsinghua.edu.cn 替换为:
· mirrors.aliyun.com (阿里云)
· mirrors.huaweicloud.com (华为云)
· mirrors.cloud.tencent.com (腾讯云)
对于Docker源,也需要检查:
sudo nano /etc/apt/sources.list.d/docker.list
如果有问题,可以暂时注释掉或更换镜像。
最简单的方法是重新生成sources.list:
# 备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup.$(date +%Y%m%d)
# 生成阿里云镜像源(Ubuntu 22.04)
sudo tee /etc/apt/sources.list << 'EOF'
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF
# 更新
sudo apt update
cat /etc/resolv.conf
确保有有效的DNS服务器,如:
nameserver 8.8.8.8
nameserver 8.8.4.4
或国内DNS:
nameserver 223.5.5.5 # 阿里DNS
nameserver 119.29.29.29 # 腾讯DNS
请按顺序尝试这些方法,通常问题会在第4步或第7步解决。
在Ubuntu上开放端口10088,需要根据你使用的防火墙工具来操作。Ubuntu常见的防火墙工具有 ufw(推荐,简单易用)和 iptables(底层工具)。下面是详细的操作方法:
方法一:使用 ufw(推荐)
ufw 是Ubuntu默认的防火墙管理工具,操作简单。
sudo ufw status
· 如果显示 Status: inactive,说明防火墙未启用,端口默认都是开放的。
· 如果显示 Status: active,则需要添加规则。
sudo ufw enable
开放TCP协议的10088端口:
sudo ufw allow 10088/tcp
如果同时需要TCP和UDP:
sudo ufw allow 10088
更精确的控制:
# 仅允许来自特定IP访问10088端口
sudo ufw allow from 192.168.1.100 to any port 10088 proto tcp
# 允许特定IP段
sudo ufw allow from 192.168.1.0/24 to any port 10088
sudo ufw status numbered
输出示例:
Status: active
To Action From
-- ------ ----
[1] 10088/tcp ALLOW Anywhere
[2] 10088/tcp (v6) ALLOW Anywhere (v6)
sudo ufw reload
方法二:使用 iptables(直接配置)
如果你使用原始的iptables:
# 开放TCP端口
sudo iptables -A INPUT -p tcp --dport 10088 -j ACCEPT
# 开放UDP端口
sudo iptables -A INPUT -p udp --dport 10088 -j ACCEPT
# 安装iptables持久化工具
sudo apt-get update
sudo apt-get install iptables-persistent
# 保存当前规则
sudo netfilter-persistent save
# 或
sudo iptables-save > /etc/iptables/rules.v4
sudo iptables -L -n | grep 10088
方法三:使用 firewalld(较少见)
如果你的Ubuntu安装了firewalld:
# 添加端口
sudo firewall-cmd --zone=public --add-port=10088/tcp --permanent
# 重载配置
sudo firewall-cmd --reload
# 查看
sudo firewall-cmd --zone=public --list-ports
验证端口是否真正开放
# 查看哪些程序在监听10088端口
sudo netstat -tlnp | grep 10088
sudo ss -tlnp | grep 10088
# 在另一台机器上测试(假设服务器IP是192.168.1.100)
telnet 192.168.1.100 10088
# 或
nc -zv 192.168.1.100 10088
针对内网穿透的特殊说明
如果你是为内网穿透客户端开放10088端口:
常见场景示例:
# 场景:内网穿透客户端将本地的SSH服务映射到公网服务器的10088端口
# 在公网服务器上执行:
sudo ufw allow 10088/tcp
sudo ufw reload
# 在内网客户端上执行(如果需要):
sudo ufw allow from 192.168.1.0/24 to any port 22 # 允许内网访问SSH
重要安全提示
sudo ufw allow from 203.0.113.0/24 to any port 10088 # 仅允许特定IP段
# 允许特定服务(如果已定义)
sudo ufw allow OpenSSH # 例如SSH服务
# 查看防火墙日志
sudo tail -f /var/log/ufw.log
故障排查
如果端口仍然无法访问:
sudo lsof -i :10088
最简单的操作流程:
# 1. 检查状态
sudo ufw status
# 2. 如果未启用,启用它
sudo ufw enable
# 3. 开放10088端口
sudo ufw allow 10088/tcp
# 4. 验证
sudo ufw status numbered
这样配置后,10088端口就应该可以被外部访问了。
在 Ubuntu Server 中创建新用户有几种常用方法,以下是详细步骤:
方法1:使用 adduser 命令(推荐)
# 创建用户并设置密码
sudo adduser username
# 系统会交互式地提示:
# 1. 设置密码
# 2. 确认密码
# 3. 填写用户信息(可跳过)
方法2:使用 useradd 命令
# 基本创建用户(不创建家目录)
sudo useradd username
# 创建用户并同时创建家目录
sudo useradd -m username
# 创建用户并指定家目录路径
sudo useradd -m -d /path/to/home username
# 创建用户并指定登录shell
sudo useradd -m -s /bin/bash username
# 创建用户后需要手动设置密码
sudo passwd username
方法3:创建用户并添加到 sudo 组
# 创建用户
sudo adduser username
# 将用户添加到 sudo 组(获取管理员权限)
sudo usermod -aG sudo username
# 验证用户是否在 sudo 组
groups username
方法4:创建系统用户(无家目录,用于服务)
# 创建系统用户(无家目录)
sudo useradd -r username
# 或使用 adduser 创建系统用户
sudo adduser --system --no-create-home username
常用选项和参数
# 创建用户时指定UID
sudo useradd -u 1001 username
# 创建用户时指定主要组
sudo useradd -g groupname username
# 创建用户时指定多个附加组
sudo useradd -G group1,group2 username
# 设置用户过期时间
sudo useradd -e 2024-12-31 username
# 创建用户时设置注释信息
sudo useradd -c "User Description" username
用户管理相关命令
# 删除用户(保留家目录)
sudo userdel username
# 删除用户及家目录
sudo userdel -r username
# 修改用户属性
sudo usermod [options] username
# 锁定用户账户
sudo usermod -L username
# 解锁用户账户
sudo usermod -U username
# 查看用户信息
id username
finger username # 需要安装 finger 包
getent passwd username
最佳实践建议
# 创建用户时强制密码策略
sudo adduser --disabled-password username # 创建无密码用户
sudo passwd username # 随后设置强密码
# 强制首次登录修改密码
sudo passwd --expire username
# 检查用户是否存在
grep username /etc/passwd
# 检查家目录是否创建
ls -la /home/username
# 测试登录
su - username
示例:完整创建流程
# 1. 创建开发人员用户
sudo adduser developer
# 2. 添加到必要组
sudo usermod -aG sudo,www-data,ssh developer
# 3. 配置SSH密钥(可选)
sudo mkdir -p /home/developer/.ssh
sudo nano /home/developer/.ssh/authorized_keys
# 粘贴公钥后设置权限
sudo chown -R developer:developer /home/developer/.ssh
sudo chmod 700 /home/developer/.ssh
sudo chmod 600 /home/developer/.ssh/authorized_keys
# 4. 禁用密码登录(仅允许SSH密钥,可选)
sudo nano /etc/ssh/sshd_config
# 修改:PasswordAuthentication no
sudo systemctl restart ssh
这样你就成功创建了新用户!根据你的需求选择合适的方法。
这个问题是因为WordPress设置了强制HTTPS重定向。您需要从几个地方检查:
1. 首先检查WordPress设置
登录WordPress后台
“`bash
# 使用浏览器访问
http://100.88.88.150/wp-admin
“`
在后台检查:
1. 设置 → 常规
· WordPress地址(URL)
· 站点地址(URL)
确保两者都是 http://100.88.88.150(不是https)
2. WordPress可能被插件或主题强制HTTPS
2. 检查数据库设置
“`bash
# 查看WordPress的站点URL设置
sudo mysql -u root -p wordpress -e “SELECT * FROM wp_options WHERE option_name IN (‘siteurl’, ‘home’);”
“`
如果显示https,修改它:
“`bash
# 修改为HTTP
sudo mysql -u root -p wordpress << EOF
UPDATE wp_options SET option_value = 'http://100.88.88.150' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'http://100.88.88.150' WHERE option_name = 'home';
EOF
```
3. 检查wp-config.php设置
```bash
# 查看配置文件是否有强制HTTPS
sudo grep -i "https\|ssl\|443" /var/www/wordpress/wp-config.php
# 常见的强制HTTPS设置
# define('FORCE_SSL_ADMIN', true);
# define('FORCE_SSL_LOGIN', true);
# $_SERVER['HTTPS'] = 'on';
```
如果有,注释或删除它们:
```bash
sudo nano /var/www/wordpress/wp-config.php
```
查找并注释掉:
```php
// 注释掉这些行
// define('FORCE_SSL_ADMIN', true);
// define('FORCE_SSL_LOGIN', true);
// $_SERVER['HTTPS'] = 'on';
```
4. 检查.htaccess文件(如果存在)
```bash
# Nginx通常不用.htaccess,但WordPress可能生成
sudo ls -la /var/www/wordpress/.htaccess
# 如果有,检查重定向规则
sudo grep -i "https\|redirect\|rewrite" /var/www/wordpress/.htaccess
```
5. 检查Nginx配置
```bash
# 查看是否有301重定向到HTTPS
sudo grep -r "301\|redirect\|https" /etc/nginx/sites-available/
# 检查您的WordPress配置
sudo cat /etc/nginx/sites-available/wordpress | grep -A5 -B5 "301\|https"
```
6. 快速修复脚本
创建一个修复脚本:
```bash
cat > fix_https_redirect.sh << 'EOF'
#!/bin/bash
echo "=== 修复HTTPS强制重定向 ==="
# 1. 备份数据库
echo "1. 备份数据库..."
sudo mysqldump -u root -p wordpress > /tmp/wordpress_backup_$(date +%Y%m%d).sql
# 2. 修改数据库URL
echo “2. 修改数据库中的URL设置…”
sudo mysql -u root -p wordpress << 'MYSQL_SCRIPT'
UPDATE wp_options SET option_value = REPLACE(option_value, 'https://', 'http://') WHERE option_name IN ('siteurl', 'home');
UPDATE wp_options SET option_value = 'http://100.88.88.150' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'http://100.88.88.150' WHERE option_name = 'home';
MYSQL_SCRIPT
# 3. 检查wp-config.php
echo "3. 检查wp-config.php..."
sudo sed -i "s/define('FORCE_SSL_ADMIN', true);/\/\/define('FORCE_SSL_ADMIN', true);/g" /var/www/wordpress/wp-config.php
sudo sed -i "s/define('FORCE_SSL_LOGIN', true);/\/\/define('FORCE_SSL_LOGIN', true);/g" /var/www/wordpress/wp-config.php
sudo sed -i "/\$_SERVER\['HTTPS'\]/d" /var/www/wordpress/wp-config.php
# 4. 清理缓存(如果有)
echo "4. 清理缓存..."
sudo rm -rf /var/www/wordpress/wp-content/cache/* 2>/dev/null
# 5. 重启服务
echo “5. 重启服务…”
sudo systemctl restart nginx
sudo systemctl restart php8.1-fpm
echo “修复完成!”
echo “现在测试:curl -I http://100.88.88.150”
EOF
chmod +x fix_https_redirect.sh
sudo ./fix_https_redirect.sh
“`
7. 临时解决方法(直接修改Nginx)
如果上述方法无效,可以在Nginx配置中强制HTTP:
“`bash
# 编辑Nginx配置
sudo nano /etc/nginx/sites-available/wordpress
“`
在server块中添加(如果已经有重定向,先删除):
“`nginx
server {
listen 80;
server_name 100.88.88.150;
# 强制HTTP,避免任何HTTPS重定向
if ($http_x_forwarded_proto = “https”) {
set $http_x_forwarded_proto “http”;
}
# 拦截WordPress的重定向
location / {
# 覆盖WordPress的任何重定向
proxy_set_header X-Forwarded-Proto http;
proxy_set_header HTTPS off;
# 原有的try_files规则
try_files $uri $uri/ /index.php?$args;
}
# … 其他配置保持不变
}
“`
然后重启:
“`bash
sudo nginx -t
sudo systemctl reload nginx
“`
8. 测试是否修复
“`bash
# 测试重定向
curl -I http://100.88.88.150
# 应该返回200而不是301
# 如果要详细跟踪重定向
curl -L -v http://100.88.88.150 2>&1 | grep -i “location\|http”
# 或者使用更简单的测试
curl -s -o /dev/null -w “%{http_code}” http://100.88.88.150
# 应该返回200
“`
9. 如果仍有问题,启用调试模式
“`bash
# 在wp-config.php中添加调试
sudo nano /var/www/wordpress/wp-config.php
“`
添加:
“`php
define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, true);
define(‘WP_DEBUG_DISPLAY’, false);
“`
然后检查日志:
“`bash
sudo tail -f /var/www/wordpress/wp-content/debug.log
“`
10. 彻底排查流程
“`bash
# 一步步排查
echo “=== 排查步骤 ===”
echo “1. 检查Nginx配置…”
sudo nginx -T 2>/dev/null | grep -i “rewrite\|redirect\|https”
echo “2. 检查数据库…”
sudo mysql -u root -p wordpress -e “SELECT option_name, option_value FROM wp_options WHERE option_name LIKE ‘%url%’ OR option_value LIKE ‘%https%’;”
echo “3. 检查配置文件…”
sudo grep -r “https\|SSL” /var/www/wordpress/wp-config.php
echo “4. 检查主题和插件…”
sudo find /var/www/wordpress/wp-content -name “*.php” -exec grep -l “force_ssl\|https” {} \;
echo “5. 检查headers…”
curl -I http://100.88.88.150
“`
最可能的原因和解决方案
根据您的输出 X-Redirect-By: WordPress,重定向来自WordPress本身,不是Nginx。按照以下优先级解决:
优先级1:数据库设置(95%可能)
“`bash
# 执行这个最简单有效的修复
sudo mysql -u root -p wordpress -e “UPDATE wp_options SET option_value = ‘http://100.88.88.150’ WHERE option_name IN (‘siteurl’, ‘home’);”
“`
优先级2:WordPress配置
“`bash
# 检查并修复wp-config.php
sudo sed -i “s/https:/http:/g” /var/www/wordpress/wp-config.php
sudo sed -i “/FORCE_SSL/d” /var/www/wordpress/wp-config.php
“`
优先级3:清理缓存
“`bash
sudo rm -rf /var/www/wordpress/wp-content/cache/*
sudo systemctl restart php8.1-fpm
sudo systemctl reload nginx
“`
立即执行的快速修复
“`bash
# 一行命令修复(最有效)
sudo mysql -u root -p wordpress -e “UPDATE wp_options SET option_value = ‘http://100.88.88.150’ WHERE option_name IN (‘siteurl’, ‘home’);” && sudo systemctl reload nginx && curl -I http://100.88.88.150
“`
请先尝试优先级1的数据库修复,这通常能解决99%的WordPress强制HTTPS问题。
sudo mysql -u root -p
— 创建数据库 codish
CREATE DATABASE IF NOT EXISTS codish
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS ‘joehuang’@’%’ IDENTIFIED BY ‘your_password_here’;
— 或者如果只允许本地访问
— CREATE USER IF NOT EXISTS ‘joehuang’@’localhost’ IDENTIFIED BY ‘your_password_here’;
GRANT ALL PRIVILEGES ON codish.* TO ‘joehuang’@’%’;
— 刷新权限使更改生效
FLUSH PRIVILEGES;
— 显示用户权限
SHOW GRANTS FOR ‘joehuang’@’%’;
# 修改用户密码(通用语法)
ALTER USER ‘用户名’@’主机’ IDENTIFIED BY ‘新密码’;
FLUSH PRIVILEGES;
# 示例:修改wpuser密码
ALTER USER ‘username’@’localhost’ IDENTIFIED BY ‘MyNewStrongPass123!’;
FLUSH PRIVILEGES;
# 退出
EXIT;
# 登录MySQL
sudo mysql -u root -p
# 输入密码
# 查看所有用户和主机
SELECT User, Host FROM mysql.user;
# 查看详细信息
SELECT User, Host, plugin, authentication_string FROM mysql.user;
# 查看用户权限
SHOW GRANTS FOR ‘wpuser’@’localhost’;
# 退出
EXIT;
修改MySQL root密码的方法取决于你的MySQL版本和操作系统。以下是几种常见的方法:
方法1:已知原密码的情况下修改
“`sql
— 登录MySQL后执行
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘新密码’;
FLUSH PRIVILEGES;
“`
方法2:忘记密码时修改(安全模式)
Windows系统:
1. 停止MySQL服务:
“`cmd
net stop mysql
# 或 MySQL80(根据版本)
net stop mysql80
“`
1. 创建初始化文件 mysql-init.txt:
“`sql
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘新密码’;
“`
1. 以安全模式启动并加载初始化文件:
“`cmd
mysqld –init-file=C:\mysql-init.txt –console
“`
1. 重启MySQL服务:
“`cmd
net start mysql
“`
Linux/Mac系统:
1. 停止MySQL服务:
“`bash
sudo systemctl stop mysql
# 或
sudo service mysql stop
“`
1. 编辑配置文件:
“`bash
sudo vim /etc/my.cnf
# 或
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
“`
1. 在 [mysqld] 部分添加:
“`
skip-grant-tables
“`
1. 重启MySQL并登录:
“`bash
sudo systemctl restart mysql
# 或
sudo service mysql restart
mysql -u root
“`
1. 在MySQL中重置密码:
“`sql
— MySQL 5.7.6及以下
UPDATE mysql.user SET authentication_string=PASSWORD(‘新密码’) WHERE User=’root’;
— MySQL 5.7.6及以上
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘新密码’;
FLUSH PRIVILEGES;
“`
1. 移除配置文件的 skip-grant-tables 并重启服务
方法3:使用mysqladmin工具
“`bash
mysqladmin -u root -p’旧密码’ password ‘新密码’
“`
重要提示:
1. 密码强度要求:MySQL 8.0+有密码策略要求,确保密码足够复杂
2. 密码特殊字符:如果密码包含特殊字符,需要用引号括起来
3. 远程root访问:如果需要远程访问,也要修改相应host的密码:
“`sql
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘新密码’;
“`
验证修改是否成功:
“`bash
mysql -u root -p
# 输入新密码测试
“`
忘记root密码的完整流程(推荐):
1. 停止MySQL服务
2. 使用–skip-grant-tables启动
3. 无密码登录MySQL
4. 执行密码修改命令
5. 重启MySQL服务
注意:生产环境操作前请做好备份,并确保服务窗口期最小化。
# 1. 首先查看当前状态
sudo ufw status
# 应该显示:Status: inactive
# 2. 添加必要的规则(在启用前配置好)
sudo ufw allow ssh # 允许SSH连接(非常重要!)
sudo ufw allow ‘Nginx HTTP’
sudo ufw allow ‘Nginx HTTPS’ # 如果需要HTTPS
# 3. 查看添加的规则
sudo ufw show added
# 4. 启用防火墙
sudo ufw enable
# 会提示:Command may disrupt existing ssh connections. Proceed with operation (y|n)?
# 输入 y 确认
# 5. 重新加载规则
sudo ufw reload
# 6. 查看完整状态
sudo ufw status verbose