从PHP连接到127.0.0.1版本的MySQL时出错


Error connecting to MySQL at 127.0.0.1 from PHP

这是我用来连接本地mysql数据库的文件。

<?php
$dbhost = '127.0.0.1';
$dbuser = 'richard77';
$dbpass = '************';
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
        or die ('Error connecting to mysql');
$dbname = 'memcache';
mysql_select_db($dbname);
?>

richard77是我的Ubuntu用户名,具有sudo特权。上面的密码与我在使用sudo命令时输入的密码相同。

我一直收到同样的错误:Error connecting to mysql。我尝试了几种组合:对于$dbhost:127.0.0.1localhost,对于$dbuser:richard77richard77--VirtualBoxrichard77@richard77--VirtualBox

我甚至不知道我的连接字符串的哪一部分出现了故障。关于从哪里开始有什么建议吗?

正如Michael所说,您需要在MySQL中拥有自己的用户帐户。您可以使用MySQL根帐户(不是系统根!)创建一个,如下所示:

mysql -u root -p -e "GRANT ALL ON dbname.* TO username@localhost IDENTIFIED BY 'secure_password';"

这将创建用户,设置密码,并授予用户对您希望他管理的数据库的所有权限。

注意:编写dbname.*username@localhost非常重要。不要只写dbnameusername

如果你没有MySQL根密码,并且你在一个基于Debian的系统上(Ubuntu就是这样),你可以使用debian-sys-maint帐户和你在/etc/mysql/debian.cnf中找到的密码。

mysql -u debian-sys-maint -p -e "GRANT ALL ON dbname.* TO username@localhost IDENTIFIED BY 'secure_password';"