如何确保虚拟机切换不同网络时IP不变,避免关联网站崩溃?
问题解决方案
1. 修复MySQL连接权限
你的MySQL服务器仅授权了第一台虚拟机的旧IP地址访问,IP变更后被拒绝连接,操作步骤如下:
- 登录第二台虚拟机的MySQL终端:
mysql -u root -p - 查看当前WordPress数据库用户的授权主机:
SELECT user, host FROM mysql.user WHERE user='你的WordPress数据库用户名'; - 删除旧IP的授权规则:
DROP USER 'wp_user'@'旧IP地址'; - 给新IP添加授权:
若频繁切换网络,可改用通配符授权(仅限信任网络环境):CREATE USER 'wp_user'@'新IP地址' IDENTIFIED BY '你的数据库密码'; GRANT ALL PRIVILEGES ON wp_database_name.* TO 'wp_user'@'新IP地址'; FLUSH PRIVILEGES;GRANT ALL PRIVILEGES ON wp_database_name.* TO 'wp_user'@'%' IDENTIFIED BY '你的数据库密码'; FLUSH PRIVILEGES;
2. 更新WordPress站点配置
IP变更后WordPress的站点URL和数据库连接可能失效,需同步更新:
- 修改站点URL:
若能登录WordPress后台,进入「设置-常规」,将「WordPress地址」和「站点地址」替换为新IP。
若无法登录,直接操作数据库:
(注意:表前缀若不是USE wp_database_name; UPDATE wp_options SET option_value = 'http://新IP地址' WHERE option_name IN ('siteurl', 'home');wp_,需替换为实际前缀) - 检查数据库连接配置:
打开第一台虚拟机的wp-config.php文件,确认DB_HOST为第二台MySQL服务器的正确IP(若第二台IP未变动则无需修改)。
3. 长期优化方案
为避免后续IP变动再次引发问题,可采用以下方式:
- 设置静态IP:在Wi-Fi/热点的路由器后台,将两台虚拟机的MAC地址绑定到固定IP,确保网络切换后IP不变。
- 使用本地域名映射:在两台虚拟机的
/etc/hosts文件中添加映射,例如:
然后将WordPress的第二台IP mysql-server 第一台IP wp-siteDB_HOST设为mysql-server,站点URL设为http://wp-site,本地设备的hosts也同步添加该映射,实现域名访问。 - 动态DNS服务:若需频繁切换网络,给第一台虚拟机配置动态DNS,绑定固定域名,用域名替代IP访问站点,同时MySQL授权可绑定该域名。
内容的提问来源于stack exchange,提问作者Maksym Pelyshko
相关产品推荐
相关产品推荐

