Laravel+Hostinger远程访问Ubuntu树莓派4本地MySQL数据库方案咨询
解决方案:Hostinger 部署的 Laravel 连接树莓派 Ubuntu 本地 MySQL
一、先搞定树莓派 MySQL 的远程访问权限
MySQL 默认拒绝外部连接,必须先调整配置:
- 修改绑定地址:编辑
/etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address = 127.0.0.1,改成bind-address = 0.0.0.0,保存后重启服务:sudo systemctl restart mysql - 创建远程访问用户:登录 MySQL 控制台(
mysql -u root -p),执行以下命令:
(如果想更安全,把CREATE USER 'laravel_remote'@'%' IDENTIFIED BY '你的强密码'; GRANT ALL PRIVILEGES ON 你的数据库名.* TO 'laravel_remote'@'%'; FLUSH PRIVILEGES;%换成 Hostinger 服务器的公网 IP,只允许该 IP 访问)
二、开放树莓派及路由器的端口
- 树莓派防火墙(UFW):开放 3306 端口,或者限制仅 Hostinger IP 访问:
验证规则:# 允许所有IP访问3306(不安全,仅测试用) sudo ufw allow 3306/tcp # 仅允许Hostinger IP访问(推荐) sudo ufw allow from Hostinger服务器IP to any port 3306sudo ufw status - 路由器端口转发:如果树莓派在局域网内,登录路由器后台,把外部端口(比如 3306)转发到树莓派的内网 IP(如 192.168.1.100)的 3306 端口。如果怕默认端口被扫,可以改用非标准端口(比如 33060),转发时对应上即可。
三、替代 localhost.run 的稳定端口映射方案
localhost.run 这类临时映射不稳定,推荐两种方案:
1. 公网 IP + DDNS(如果树莓派有公网 IP)
- 先查树莓派公网 IP:
curl ifconfig.me - 若 IP 是动态的,用 DDNS 服务绑定一个固定域名,定期同步公网 IP 到域名,这样 Laravel 配置里直接用域名即可,不用频繁改 IP。
2. FRP 反向代理(无公网 IP 也能用)
FRP 比临时映射稳定,自己搭或用免费节点都可以:
- 树莓派作为 FRPC 客户端,下载对应版本的 FRP,创建
frpc.ini:[common] server_addr = FRP服务器公网IP server_port = 7000 [mysql_proxy] type = tcp local_ip = 127.0.0.1 local_port = 3306 remote_port = 33060 - 启动客户端:
./frpc -c frpc.ini,可以配置成系统服务开机自启。 - Hostinger 这边连接时,用 FRP 服务器 IP + 33060 端口即可。
四、Hostinger 端 Laravel 配置
修改项目根目录的 .env 文件:
DB_CONNECTION=mysql DB_HOST=树莓派公网IP/DDNS域名/FRP服务器IP DB_PORT=3306/33060(对应你设置的端口) DB_DATABASE=你的数据库名 DB_USERNAME=laravel_remote(之前创建的远程用户) DB_PASSWORD=你的强密码
测试连接:执行 php artisan tinker,然后输入 DB::connection()->getPdo();,无报错则连接成功。
五、常见问题排查
- 连通性测试:在 Hostinger 服务器上执行
telnet 目标IP 端口,如果连接失败,优先排查防火墙、端口转发是否配置正确。 - MySQL 日志:查看树莓派 MySQL 错误日志
sudo tail -f /var/log/mysql/error.log,排查用户权限、绑定地址等问题。 - Hostinger 出站限制:部分主机商会限制 3306 这类常用端口出站,联系客服确认,或改用非标准端口绕开限制。
内容的提问来源于stack exchange,提问作者drei-sys
相关产品推荐
相关产品推荐

