无法连接到远程MySQL数据库

时间:2011-10-05 20:15:34

标签: c# mysql database

我正在尝试连接到服务器上的MySQL数据库。这是我用来连接的小样本:


using System;
using System.Data;
using MySql.Data.MySqlClient;

namespace MySqlTest
{
    class MainClass
    {
        public static void Main (string[] args)
        {
        string connectionString =
          "Server=12.34.546.213;" +
          "Database=Test;" +
          "UID=root;" +
          "Password=password;";
       IDbConnection dbcon;
       dbcon = new MySqlConnection(connectionString);
       dbcon.Open();

当我尝试执行此代码时出现以下错误:


Unhandled Exception: MySql.Data.MySqlClient.MySqlException: Access denied for us
er 'root'@'12.34.546.213' (using password: YES)
   at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
   at MySql.Data.MySqlClient.NativeDriver.AuthenticateNew()
   at MySql.Data.MySqlClient.NativeDriver.Authenticate()
   at MySql.Data.MySqlClient.NativeDriver.Open()
   at MySql.Data.MySqlClient.Driver.Open()
   at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings
)
   at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   at MySql.Data.MySqlClient.MySqlPool.GetConnection()
   at MySql.Data.MySqlClient.MySqlConnection.Open()
   at MySqlTest.MainClass.Main(String[] args) in c:\Users\dvargo\Documents\Proje
cts\MySqlTest\MySqlTest\Main.cs:line 18
Press any key to continue . . .

为什么会出现这种情况?如何授予root权限以便我可以访问它?

3 个答案:

答案 0 :(得分:7)

创建用户以从任何主机(或仅从您将要连接的主机)进行访问:

CREATE USER 'username'@'%' IDENTIFIED BY  'password';

授予对db的权限:

GRANT ALL PRIVILEGES ON  `sometable` . * TO  'username'@'%' WITH GRANT OPTION ;

答案 1 :(得分:3)

检查mysql配置,默认情况下,允许root用户仅从localhost连接。

http://dev.mysql.com/doc/refman/5.1/en/connection-access.html

答案 2 :(得分:0)

您是否编辑了配置文件以允许远程访问?

如果没有,那可能是你的问题。我不知道在这里发布链接的规则,但搜索谷歌的远程mysql访问将提供一些很好的建议。