在000webhost上使用laravel拒绝MySQL连接

时间:2017-05-14 10:26:41

标签: php mysql database laravel hosting

我正在尝试将我的laravel项目部署到000webhost。问题是我无法连接到我的数据库。

当我将DB_HOST设置为127.0.0.1时,我得到了一个" SQLSTATE [HY000] [2002]"提到错误。当我将DB_HOST更改为localhost时,我收到错误消息"错误的com stmt准备响应大小7"。

这是我的.env文件:

APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:fuFWdq2OAIZbxiiouYdTfbPnkeEOL8h/hDJjvb7XT+c=
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=id1619178_kule
DB_USERNAME=************
DB_PASSWORD=************

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=mail
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null  
MAIL_PASSWORD=null
MAIL_ENCRYPTION=tls
MAIL_TO=

4 个答案:

答案 0 :(得分:0)

并非所有共享托管都在与 HTTP 服务器相同的localhost上提供 MySQL 。您应该检查 cpanel 以获取 MySQL 服务器的地址:

From your hosting provider's documentation:

  

什么是MySQL主机名?

     

你去了我们的会员'区域,进入控制面板,然后点击“MySQL'图标。您的MySQL主机名将在那里列出。

     

重要!永远不要使用' localhost'作为你的MySQL主机名,或者你将获得访问被拒绝的错误!

您的特定提供商明确说明您应该,"永远不要使用localhost"。

答案 1 :(得分:0)

您指定的Web主机的主机名因服务器而异!

您可以从控制面板检索主机名并向文件添加更改,否则您将获得权限被拒绝。

答案 2 :(得分:0)

000webhost无法从.env文件执行命令,因此您必须在/config/database.php文件中手动指定五个变量

'mysql' => [
        'driver' => 'mysql',
        'host' => 'localhost',
        'port' => '3306',
        'database' => 'your_database_name',
        'username' => 'your_database_username',
        'password' => 'yourpassword',
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
    ],

答案 3 :(得分:0)

如果000webhost中有免费计划,则无法进行远程连接。仅来自您的网站。