gpt4 book ai didi

php - laravel 连接到在线数据库

转载 作者:行者123 更新时间:2023-11-29 11:27:31 24 4
gpt4 key购买 nike

我有离线应用程序(安装在本地主机中),但数据库位于在线服务器中..因为我想制作类似同步器的东西...

我尝试像这样设置我的database.php

       'mysqlserver' => array(
'host' => '103.38.103.142',
'port' => '212',
'driver' => 'mysql',
'database' => 'lgspsb',
'username' => 'xxxxxxx',
'password' => 'xxxxxxx',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

但是这样的错误...

SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 0 

我怎么解决不了这个问题?谢谢之前...抱歉我的英语不好

最佳答案

我将在这里为那些在寻找您的问题的解决方案时来这里的人提供答案。

完成后:

telnet 103.38.103.142 212

我看到监听212端口的应用程序不是mysql rdbms。

这是屏幕截图:http://joxi.ru/Vm6kkLCxn16Q2Z

我还看到它是 ubuntu。

很快我就会一步一步解决您的问题。

1)切换到root:

sudo su

2) 编辑 /etc/mysql/my.cnf 文件并确保它在 mysqld 部分下绑定(bind)(屏幕截图: http://joxi.ru/zANQQJhlqXn329 ):

bind-address = 0.0.0.0

3)重新启动你的mysql服务器:

service mysql restart

4) 以 mysql root 用户身份进入终端中的 mysql 控制台(截图: http://joxi.ru/a2X77bSyOM3Rmg ):

mysql -u root -p

5)为您的数据库创建远程用户并刷新权限:

GRANT ALL ON lgspsb.* TO 'lgspsb_remote'@'%' IDENTIFIED BY 'somehardpassword';
FLUSH PRIVILEGES;

6)更改数据库连接参数:

   'mysqlserver' => array(
'host' => '103.38.103.142',
'port' => '3306',
'driver' => 'mysql',
'database' => 'lgspsb',
'username' => 'lgspsb_remote',
'password' => 'somehardpassword',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

就这些了(:

附:使用 .env 文件以避免每次都更改数据库配置。截图:http://joxi.ru/ZrJEEJh17ROwAj

附:当然这是出于开发目的。在生产中,最好监听具有更安全环境的具体网络接口(interface)(例如,拥有 pptp vpn 连接并绑定(bind)到 pptp0 接口(interface)的 ip)

对于 digital ocean 爱好者:
在 digitalocean 我有水滴。
我确实有单独的数据库服务器来监听 Droplet 之间的内部网络接口(interface)
以及使用相同内部网络连接到它们的应用服务器。

关于php - laravel 连接到在线数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37955560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com