2013-10-14 87 views
0

我有下面的代码位:PHP连接到MySQL - 拒绝访问

ob_start(); 
$host="localhost"; // Host name 
$username="admin"; // Mysql username 
$password=""; // Mysql password 
$db_name="my_db_m"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB :".mysql_error()); 

// Define $myusername and $mypassword 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

当我尝试登录时,我得到: 不能选择DB:拒绝访问用户“” @“localhost”的到数据库'my_db_m'

我正在使用xampp。我使用phpMyAdmin来创建一个名为'my_db_m'的数据库。我创建了一个名为'members'的表。

我错过了什么吗?我连接到mysql服务器,但无法访问数据库...

+0

您需要向用户授予允许该用户访问特定数据库的权限。 –

+0

强制性公告:'mysql'已弃用。请使用'mysqli'。 – PlantTheIdea

+0

您是否为您的用户'admin'授予访问权限? – 2013-10-14 19:46:13

回答

0

您可能需要授予访问您的admin用户。

GRANT ALL ON my_db_m.* TO 'admin'@'localhost'; 

这是因为它赋予的所有权利相当广泛的,你可能要限制像

GRANT INSERT, UPDATE, SELECT, DELETE ON my_db_m.* TO 'admin'@'localhost'; 
+0

使用phpMyAdmin,我会在哪里输入这个命令? –

+0

@YokanGekkou - 有关用户管理的信息,请参阅[文档](http://wiki.phpmyadmin.net/pma/user_management)。 – EmmyS

+0

如果您使用的是phpMyAdmin,则不需要此命令:您可以通过主页上的“权限”选项卡授予访问权限。在共享主机环境中,权限选项卡可能被禁用,并且将使用其他机制。有一个phpMyAdmin参考[这里](http://wiki.phpmyadmin.net/pma/user_management#Editing_an_existing_user)。如果这没有帮助,请联系您的ISP – 2013-10-14 20:09:56

0

简单

GRANT USAGE ON my_db_m TO [email protected] IDENTIFIED BY 'passwd'; 

用于一般用途的东西访问如果您想授权使用任何数据库使用:

GRANT USAGE ON *.*