Ubuntu系统下MySQL Server拒绝远程连接及phpMyAdmin访问异常求助
针对Ubuntu下MySQL远程连接被拒&phpMyAdmin域名无法访问的解决方案
我来帮你一步步拆解这两个问题,在Ubuntu环境下碰到这类情况太常见了,咱们逐个解决:
问题1:MySQL远程连接始终被拒绝
1. 检查MySQL的绑定地址
默认情况下MySQL只允许本地(127.0.0.1)连接,得修改配置让它对外提供服务:
- 打开MySQL配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf - 找到
bind-address这一行,把值改成0.0.0.0(允许所有IP访问)或者你指定的远程IP - 保存退出后重启MySQL服务:
sudo systemctl restart mysql
2. 授权远程访问的MySQL用户
就算绑定地址改了,还得给用户开远程访问权限:
- 本地登录MySQL:
mysql -u root -p - 执行授权命令(替换成你的用户名和密码,
%表示允许所有IP,也可以换成特定IP更安全):GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' IDENTIFIED BY 'your_password'; - 刷新权限让设置生效:
FLUSH PRIVILEGES;
3. 检查Ubuntu防火墙设置
Ubuntu默认的ufw防火墙可能拦截了3306端口:
- 允许3306端口的TCP流量:
sudo ufw allow 3306/tcp - 重启防火墙生效:
sudo ufw reload
4. 测试远程连接
用远程机器的MySQL客户端测试:mysql -u your_username -p -h your_server_ip,如果能成功登录就搞定了。
问题2:phpMyAdmin仅能通过IP访问,域名无法生效
1. 检查Web服务器的虚拟主机配置
假设你用的是Apache(Nginx配置逻辑类似):
- 打开你的域名站点配置文件(比如
/etc/apache2/sites-available/your_domain.conf),确保配置包含以下关键内容:<VirtualHost *:80> ServerName your_domain.com # 替换成你的域名 DocumentRoot /usr/share/phpmyadmin # phpMyAdmin的默认安装目录 <Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All Require all granted </Directory> </VirtualHost> - 启用这个站点:
sudo a2ensite your_domain.conf - 重启Apache服务:
sudo systemctl restart apache2
2. 验证域名解析(或本地hosts映射)
- 如果是公网域名,用
ping your_domain.com测试是否能解析到你的服务器IP,不行的话检查域名的DNS记录是否正确配置 - 如果是本地测试环境,在你的本地机器hosts文件里添加映射:
your_server_ip your_domain.com(Linux/macOS编辑/etc/hosts,Windows编辑C:\Windows\System32\drivers\etc\hosts)
3. 清除浏览器缓存测试
有时候浏览器缓存了旧的DNS或页面记录,导致域名访问失效,用无痕模式打开或者清除缓存后再试。
内容的提问来源于stack exchange,提问作者Henry Johnson
相关产品推荐
相关产品推荐

