Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pdo 在当地工作,可以';t在Laravel中连接到远程数据库_Pdo_Laravel_Laravel 3 - Fatal编程技术网

Pdo 在当地工作,可以';t在Laravel中连接到远程数据库

Pdo 在当地工作,可以';t在Laravel中连接到远程数据库,pdo,laravel,laravel-3,Pdo,Laravel,Laravel 3,我正在尝试在Laravel本地工作,在连接远程数据库时遇到问题。我使用我的域名(domain.org)作为主机,然后使用密码、用户名和数据库名。但我得到了这个错误: PDO::__construct(): Premature end of data (mysqlnd_wireprotocol.c:553) 如果我查看发生错误的文件,它位于MySQL驱动程序中的PDO连接中。我问我的ISP设置,他说使用domain.org或IP。我两次都试过了,但还是有错误。我尝试将端口设置为标准3306,但仍

我正在尝试在Laravel本地工作,在连接远程数据库时遇到问题。我使用我的域名(domain.org)作为主机,然后使用密码、用户名和数据库名。但我得到了这个错误:

PDO::__construct(): Premature end of data (mysqlnd_wireprotocol.c:553)

如果我查看发生错误的文件,它位于MySQL驱动程序中的PDO连接中。我问我的ISP设置,他说使用domain.org或IP。我两次都试过了,但还是有错误。我尝试将端口设置为标准3306,但仍然出现错误。我不能使用localhost作为我的主机,因为这将引用我的本地计算机。有人能帮忙吗?连接需要做什么?

我认为这是web主机上MySQL版本中使用的加密与PHP版本中使用的加密之间的区别

看看关于这个问题的公认答案:


至于解决方案,您的web主机可能愿意也可能不愿意更改您的MySQL设置,但我猜测,如果他们运行的是旧的MySQL,他们也将运行旧版本的PHP。Laravel需要5.3。

要使用“远程Mysql”,您需要将您的IP添加到服务器的白名单中,并将Mysql配置为接受远程连接。

老问题,但是,很多人可能需要这个,所以添加对我有用的内容

在5.6+中,还将致力于出租方版本

DB_CONNECTION_REMOTE=mysql
DB_HOST_REMOTE=remotehost
DB_PORT_REMOTE=3306
DB_DATABASE_REMOTE=database_name
DB_USERNAME_REMOTE=database_user
DB_PASSWORD_REMOTE=database_password
在config/database.php中

 'connections' => [
  'mysqlRemote' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST_REMOTE', '127.0.0.1'),
            'port' => env('DB_PORT_REMOTE', '3306'),
            'database' => env('DB_DATABASE_REMOTE', 'forge'),
            'username' => env('DB_USERNAME_REMOTE', 'forge'),
            'password' => env('DB_PASSWORD_REMOTE', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],
然后在你的控制器里

$records = DB::connection('mysqlRemote')->select( DB::raw('SELECT `col1`, `col2` FROM `table`') );

如果您的IP是白名单,它应该可以正常工作,在Laravel 5.6中进行测试,下载PHP5.2.2。安装后,我启动了Wamp,在我的图标托盘中左键单击Wamp,选择PHP->Version…并单击5.2.2。您是否修复了此问题?