我最近选择了C#编程,并希望从mySQL表中读取表格并在DataGridView控件中显示它们。这些表是使用PHP脚本生成的,我可以登录到我的数据库。在PHP中,我使用以下连接字符串:
@mysql_connect( '本地主机:3307', '根', 'password_string');
在C#中,我使用以下连接字符串:
string MyConString = @“Server = localhost; Database = database_name; User ID = root; Password = password_string”;
当我运行程序时,我在控制台中收到以下消息:
“拒绝访问用户'root'@'localhost'”
我尝试使用单引号,使用localhost:3307等对连接字符串进行无数次更改。我已经为root用户授予了权限,所以我不认为这是问题所在。我如何通过这个?我的连接器有问题吗?任何想法将不胜感激。
答案 0 :(得分:0)
在PHP中,您将连接到非标准端口3307.您可以使用port=3307
在.NET连接字符串中指定它:
string MyConString = @"Server=localhost;Database=database_name;User ID=root;Password=password_string;port=3307";
答案 1 :(得分:0)
这可能是由于PRIVILEGES可能是用户名没有必要的特权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
其他原因可能是
这是不可能的,因为客户端总是使用套接字连接到“localhost”(这是默认主机)。对于成功连接,必须指定localhost + socket或127.0.0.1 + port的组合。
kimiko:〜#mysql -h127.0.0.1 -P3307 -ptest
kimiko:〜#mysql -S / path / to / mysql.sock -ptest