php – 无法通过MAMP连接到MySQL
所以这是包含我的凭据的数组.
'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()); } 这就是我得到的错误
但我知道这意味着访问被拒绝,但凭据是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密码应该按预期工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |