我可以使用php连接到我的mysql数据库而无需密码。但是,当我在phpmyadmin中添加密码时,我无法再连接。我一直得到错误:
"Could not connect: Access denied for user 'admin'@'localhost' (using password: YES)"
我尝试使用MySQL密码4.0和4.1+的两种设置,结果相同。
mysql_connect ("127.0.0.1", "admin", "password") or die('Could not connect: ' . mysql_error());;
mysql_select_db ("datatable");
有没有人知道这里会发生什么?
编辑:如果我关闭密码,我可以访问它。似乎有一些误解
答案 0 :(得分:1)
根据您显示的mysql_connect语句,您尝试以admin@'127.0.0.1'
身份进行连接。这需要使用TCP / IP连接到mysql。如果以admin@localhost
连接,则使用mysql.sock(套接字文件)连接到mysqld。
您应该运行此查询
SELECT user,host,password FROM mysql.user WHERE user='admin';
您应该看到admin@localhost
已定义。你可能不会看到admin@'127.0.0.1'
。您可以添加它,但只需编写admin@localhost
代码就可以了。
尝试更改代码,如下所示:
mysql_connect ("localhost", "admin", "password") or die('Could not connect: ' . mysql_error());;
mysql_select_db ("datatable");
如果你可以在没有密码的情况下连接mysql,那么你的mysql安装就不安全了。
您需要为admin @ localhost添加密码并删除匿名用户登录,如下所示:
UPDATE mysql.user SET password=password('whateverpassword')
where user='admin' and host='localhost';
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;
这是另一个建议:像这样创建admin@127.0.0.1用户:
GRANT ALL PRIVILEGES ON *.* TO admin@'127.0.0.1' IDENTIFIED BY 'whateverpassword';
并尝试原始代码
答案 1 :(得分:1)
这可能会有所帮助
以下步骤: -
它会问你一个pw - 只是点击返回,因为你还没有它(下次你去控制台你需要输入你输入的新pw) 。 输入以下内容:
更新mysql.user SET密码=密码(“xxxxxx”) 用户=“root”; (其中xxxxxx是您在上一步中输入的密码)。
现在输入: FLUSH PRIVILEGES;
转到您的WAMP或MAMP文件夹,找到APPS文件夹,然后单击您的PHPMYADMIN文件夹(例如我的文件夹名为phpmyadmin2.11.6)并找到config.inc.php
使用wordpad打开config.inc.php,找到以下文字:
$cfg['Servers'][$i]['password'] = '';
现在添加您在步骤3中使用的密码,如下所示:
$cfg['Servers'][$i]['password'] = 'yourPasswordHere';
你现在应该全部准备好了!
来源 - http://www.knowledgesutra.com/discuss/tsilti-php-myadmin-access-mysql-database.html
答案 2 :(得分:0)
您的用户名或密码不正确。确保正确键入它们,而不留下尾随空格。用户名和密码区分大小写。
答案 3 :(得分:0)
如果您通过phpMyAdmin篡改MySQL用户数据,则必须执行
FLUSH PRIVILEGES
命令以使新规则适用。