主机不允许连接到该mysql数据库

时间:2020-04-23 11:24:42

标签: c# mysql database visual-studio-code

我正在使用SignalR和MySQL数据库在VS Code中的ASP.NET Razor Pages中创建一个Web api聊天应用程序。 (Microsoft SQL Server Management Studio)

我想将消息和用户存储在一个表中,但是当我建立MySQL连接时收到一条错误消息:

MySql.Data.MySqlClient.MySqlException (0x80004005): Host '' is not allowed to connect to this MySQL server

这可能导致我之前使用ConnectionString在 appsettings.json 文件中连接到数据库吗?

这是 ChatHub.cs 代码:

using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;
using System;
using MySql.Data;
using MySql.Data.MySqlClient;
using probagetrequest.Models;

namespace SignalRChat.Hubs
{
    public class ChatHub : Hub
    {

        public async Task SendMessage(string user, string message)
        {
            string connn = "Server=localhost;Database=DBChatApp;user id=sa;password=xxx";
            MySqlConnection con = new MySqlConnection(connn);
            try { 
            Console.WriteLine("Connecting to MySql...");
            con.Open();
            string cmddd = "INSERT INTO Messages (Username,Message) VALUES (@Usernamee,@Messagee)";
            MySqlCommand cmd = new MySqlCommand(cmddd, con);
            cmd.Parameters.Add("@Usernamee", MySqlDbType.VarString).Value = user;
            cmd.Parameters.Add("@Messagee", MySqlDbType.VarString).Value = message;
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc.ToString());
            }
            con.Close();
            Console.WriteLine("Done!!!!!");

            Console.WriteLine($"user={user}, message={message}");
            await Clients.All.SendAsync("ReceiveMessage", user, message);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您是否尝试通过mysql客户端CLI登录到MySQL DB。我认为您的项目中提到的“ mysql用户”权限问题是连接到MySQL DB的问题。

通常,您提到的错误是在设置了新数据库但未对其进行配置时发生的。

尝试以下命令以超级用户身份登录MySQL

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
相关问题