加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 无法通过MAMP连接到MySQL

发布时间:2020-12-13 17:30:33 所属栏目:PHP教程 来源:网络整理
导读:所以这是包含我的凭据的数组. 'mysql' = array( 'host' = '127.0.0.1','username' = 'root','password' = '*','db' = 's') 和实际的连接 try{ $this-_pdo = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db'),Conf
所以这是包含我的凭据的数组.

'mysql' => array(
    'host' => '127.0.0.1','username' => 'root','password' => '*','db' => 's'
)

和实际的连接

try{
    $this->_pdo = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db'),Config::get('mysql/username'),Config::get('mysql/username'));
}
catch(PDOException $e){
    die($e->getMessage());
}

这就是我得到的错误

SQLSTATE[28000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES)

但我知道这意味着访问被拒绝,但凭据是100%正确的.我还通过命令行和工作台进行了测试.

解决方法

你确定设置了密码吗?如果您尝试通过命令行连接,会发生什么:

/Applications/MAMP/Library/bin/mysql -uroot

此外,MAMP中root的密码是root.这不是深刻/黑暗的秘密.您的示例中的*是否有效?

在您的连接器中,您是否尝试过使用localhost而不是127.0.0.1?我已经看到一些MySQL设置可以同时使用一个而不是另一个.

编辑:如果你以某种方式搞砸了root密码,不要惊慌!您仍然可以通过这种方式重置它.警告,有些人认为这种密码重置方法是“有风险的”,但对于生产服务器或任何野外服务器来说通常都是如此.从桌面上的MAMP,这应该100%安全.

首先,完全停止MAMP.

接下来,使用skip-grant-tables选项从命令行再次启动它,如下所示:

/Applications/MAMP/Library/bin/mysqld --skip-grant-tables

完成后,您可以100%无密码登录,如下所示:

/Applications/MAMP/Library/bin/mysql -uroot

然后你可以用这个单行重置root密码:

UPDATE user SET Password=PASSWORD('root') WHERE user='root'; FLUSH PRIVILEGES; exit;

好的,现在从命令行中找到运行带有skip-grant-tables的MySQL守护进程的进程,如下所示:

ps -u [your system username] | grep "mysqld --skip-grant-tables"

应该返回包含两个项目的列表:一个是mysqld&另一个是你刚才做的命令.像这样的东西:

502  1759 ttys004    0:00.11 /Applications/MAMP/Library/bin/mysqld --skip-grant-tables
502  1766 ttys004    0:00.00 grep mysqld

好的,现在我们知道带有skip-grant-tables的mysqld有进程ID 1759,继续杀掉它就像这样:

kill 1759

再次重启MAMP& root密码应该按预期工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读