【问题标题】:How to make a connection with MySql database from my CPanel with Visual Studio 2017如何使用 Visual Studio 2017 从我的 CPanel 与 MySql 数据库建立连接
【发布时间】:2019-02-08 18:21:05
【问题描述】:

我正在尝试使用 Visual Studio 从我的 cpanel 连接到 MySQL 数据库,但我不断收到错误消息:

发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:命名 Pipes Provider,错误:40 - 无法打开与 SQL Server 的连接)

我已经为 Visual Studio 和 Connector/net 安装了 MySql。我已经尝试使用服务器资源管理器和使用连接字符串的代码。我已将我的 ip 添加到 CPanel 中 Remote MySql 的访问主机列表中。但没有任何效果。

namespace Program
{
    public partial class WebForm1 : System.Web.UI.Page
        {
        string connectionString = @"SERVER=mydomain.net;DATABASE=mydatabasename;UID=myuser;PASSWORD=mypass";

        protected void Page_Load(object sender, EventArgs e)
        {
            FillDropDown(DropDownList1);
        }

        public void FillDropDown(DropDownList dropDown)
        {
            try
            {
                using (SqlConnection sqlCon = new SqlConnection(connectionString))
                {
                    SqlCommand sqlCmd = new SqlCommand("Select * from MyTable", sqlCon);
                    sqlCon.Open();
                    dropDown.DataSource = sqlCmd.ExecuteReader();
                    dropDown.DataBind();
                    dropDown.DataTextField = "Name";
                    dropDown.DataValueField = "Id";


                }
            }
            catch(Exception ex)
            {
                lblError.Text = ex.Message;
            }
        }

    }
}

【问题讨论】:

  • 您提到了 MySQL,但错误消息显示的是 SQL Server。这两个是不同的数据库引擎。确保使用正确的连接对象。

标签: c# mysql


【解决方案1】:

SqlConnection 对象只能用于与 MS-SqlServer 的连接。您必须使用 MySqlConnection 连接到 MySql-server。这也适用于 SqlCommand。 此外,使用的连接字符串对 MySql 无效(“密码”应为“密码”)将您的字符串与 https://www.connectionstrings.com/mysql/

进行比较

【讨论】:

  • 非常感谢。但现在我收到错误:无法连接到任何指定的 MySQL 主机。这可能与我的 Cpanel 上的设置有关吗?
  • 我尝试使用 MySql Benchmark 和 Visual Studio 中的 Server Explorer,还尝试了所有可能的设置,但我仍然无法连接任何这些。不知道我做错了什么。对于服务器,我正在使用我的域,并且我还尝试了我在 Cpanel 中拥有的域的 IP。对于数据库,我输入了我的数据库名称和用户名,密码来自我为该数据库创建的用户。
  • 您的 db-user 可能配置错误。 MySql 中的 db-user 类似于 '@'。这意味着用户名和客户端必须匹配。例如,如果您的 root 用户仅设置为“root@localhost”,则在以 root 身份登录时,服务器将只允许来自 localhost 的连接。要启用所有客户端,您需要创建一个类似“@%”的用户。参考:dev.mysql.com/doc/refman/8.0/en/adding-users.html
猜你喜欢
  • 2016-12-13
  • 2014-01-24
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多