首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 5.8无法连接到非本地数据库

Laravel 5.8无法连接到非本地数据库
EN

Stack Overflow用户
提问于 2019-05-29 05:23:47
回答 3查看 1.4K关注 0票数 0

我有一个问题,一个新的Laravel项目(5.8)将无法连接到一个非本地数据库。我继续得到“拒绝用户访问.”错误。我知道配置是正确的,因为我有另一个项目运行在5.6中,用相同的配置连接到同一个数据库,而且它可以工作。看来,一旦我使用了“localhost”以外的主机名,它就会中断。它在本地工作,直到我试图连接到另一个非本地数据库。

我相信Laravel没有正确地接受主机名。我已经把所有的东西都复习过了,没有运气。访问拒绝错误总是显示项目所在机器的相同本地主机名,而不是env中的远程主机名,因此我假设它正试图连接到该主机。关于如何解决这个问题,有什么想法吗?我不知所措,不知该去哪里。

提前感谢!

编辑:我知道肯定没有配置错误、IP访问错误或缓存错误,因为我已经排除了所有这些可能的问题(听起来像是这些问题之一)。我的env和错误在下面(任何以" My“开头的内容都是我为了安全而更改的正确信息):

代码语言:javascript
运行
复制
DB_CONNECTION=mysql
DB_HOST=mysql.myURL.com
DB_PORT=3306
DB_DATABASE=myDbName
DB_USERNAME=myDbUsername
DB_PASSWORD=myDbPassword
代码语言:javascript
运行
复制
SQLSTATE[HY000] [1045] Access denied for user 'myDbUsername'@'NOTmysql.myURL.com' (using password: YES) (SQL: select count(*) as aggregate from `myTable`)

错误中的NOTmysql.myURL.com实际上是网站正在运行的服务器的本地主机名,但myDbUsername是我在配置中设置的用户名。

EN

回答 3

Stack Overflow用户

发布于 2019-05-29 17:12:35

我犯了个令人尴尬的错误,但我想出了问题的答案。我在密码中有一个#,它导致#后面的密码部分被作为注释读取,所以它只使用了部分密码。我把密码放在引号里,现在一切都正常了。

票数 2
EN

Stack Overflow用户

发布于 2019-05-29 07:14:21

@IanCowan尝试使用简单的php连接脚本进行连接。验证这个在同一个存储库上是否有效..。只是将这个php文件放在/public文件夹中。

打开/浏览该文件的url。不要忘记更改配置。

这只是为了确保..。连接端没有问题。

代码语言:javascript
运行
复制
<?php
    $servername = "localhost";
    $username = "username";
    $password = "password";

    try {
        $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "Connected successfully"; 
        }
    catch(PDOException $e)
        {
        echo "Connection failed: " . $e->getMessage();
        }
    ?>
票数 1
EN

Stack Overflow用户

发布于 2019-05-29 05:53:42

1.转到.env文件并检查数据库配置。

代码语言:javascript
运行
复制
DB_HOST=localhost
DB_DATABASE=laravelDb
DB_USERNAME=root
DB_PASSWORD=null

2.然后重新启动apache服务器并刷新页面。

3.退出/关闭并重新运行命令

代码语言:javascript
运行
复制
php artisan serve

4.清除旧的配置缓存和配置文件。

代码语言:javascript
运行
复制
php artisan config:clear
php artisan cache:clear

现在你的错误应该消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56353604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档