免费实时主机上的问题而不是本地主机上的问题 - SQLSTATE [HY000] [1045] 拒绝用户访问 'forge'@'

issue on free live host but not on localhost - SQLSTATE[HY000] [1045] Access denied for user 'forge'@'

我的 laravel 应用程序和 mysql 数据库在我使用 WAMP 的本地计算机上运行良好。当我上传到免费的实时主机进行测试时,当我尝试将用户注册到数据库时收到此消息:

Illuminate\Database\QueryException SQLSTATE[HY000] [1045] 用户 'forge'@'192.168.0.64' 的访问被拒绝(使用密码:NO)(SQL:select count(*) as从 users 汇总,其中 email = jdoe@jdoe.com)

基本上任何与访问实时站点上的数据库有关的操作都不起作用。

好像 mysql 是个问题。这是我的设置:

config/database.php:

        'mysql' => [
        'driver' => 'mysql',
        'url' => env('DATABASE_URL'),
        'host' => env('DB_HOST', 'sql201.epizy.com'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('epiz_25791111_contact_db', 'forge'),
        'username' => env('epiz_25791111', 'forge'),
        'password' => env('mypassword1', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],

.env 文件

DB_CONNECTION=mysql
DB_HOST=sql201.epizy.com
DB_PORT=3306
DB_DATABASE=epiz_25791111_contact_db
DB_USERNAME=epiz_25791111
DB_PASSWORD=mypassword1

@Kevind 在您的 mysql 服务器的 mysql 提示符下输入以下内容:

CREATE USER 'forge'@'192.168.0.64' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'forge'@'192.168.0.64' WITH GRANT OPTION;
FLUSH PRIVILEGES;

一定要把PASSWORD改成你想要的密码。

您的托管商不允许来自外部来源的连接。

Source

伙计们,我明白了。我使用的是免费主机密码,而不是不同的 Vpanel 密码。现在可以访问数据库功能。显然这个免费主机决定将 vpanel 的随机密码也复制到 mysql 密码。我不确定我是否澄清了,但数据库在 Vpanel 中而不是外部来源。非常感谢。