2011-12-29 57 views
0

我最近选择了C#编程,希望从mySQL表中读取表并在DataGridView控件中显示它们。这些表格使用PHP脚本生成,我可以登录到我的数据库。在PHP中,我使用以下连接字符串:数据库连接故障排除

@mysql_connect('localhost:3307','root','password_string');

在C#,我使用下面的连接字符串:

串MyConString = @ “服务器=本地主机;数据库= DATABASE_NAME;用户ID =根;密码= password_string”;

当我运行该程序,我在控制台收到以下消息:

“访问被拒绝的用户‘根’@‘localhost’的”

我试图使该连接变化无穷字符串通过使用单引号,使用本地主机:3307等。我已经授予用户root权限,所以我不认为这是问题。我如何克服这个问题?我有连接器有问题吗?任何想法将不胜感激。

+0

检查您的密码。你可能有密码错误。 – DarthVader 2011-12-29 06:21:58

回答

0

在PHP中要连接到非标准端口3307,您可以在.NET连接字符串与port=3307指定此:

string MyConString = @"Server=localhost;Database=database_name;User ID=root;Password=password_string;port=3307"; 
+0

解决了它 - 非常感谢! – user1120540 2011-12-30 02:42:05

+0

非常欢迎。你有没有考虑接受答案? – 2011-12-30 08:32:03

0

这可能是由于特权可以是用户名do'nt有所需的权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' 

其他原因可能是

这不是possi因为客户端总是使用套接字连接到“本地主机”(这是默认主机)。对于成功的连接,必须指定localhost + socket或127.0.0.1 +端口的组合。

伊达公子:〜#mysql的-h127.0.0.1 -P3307 -ptest

伊达公子:〜#的mysql-S /路径/到/的mysql.sock -ptest