Хосту не разрешено подключаться к этой базе данных mysql - PullRequest
0 голосов
/ 23 апреля 2020

Я делаю приложение чата веб-API в ASP. NET Razor Pages в VS Code с SignalR и с базой данных MySQL. (Microsoft SQL Server Management Studio)

Я хотел сохранить сообщения и пользователей в таблице, но когда я установил соединение MySQL, я получил сообщение об ошибке:

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

Это может привести к тому, что я ранее подключался к базе данных в appsettings. json файл с ConnectionString?

Вот код 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 голосов
/ 23 апреля 2020

Вы пытались войти в MySQL БД через mysql клиентский CLI. Я думаю, что это проблема с привилегиями "mysql user", упомянутыми в вашем проекте, для подключения к MySQL DB.

В общем, упомянутая вами ошибка возникает, когда новая база данных настроена, но оставлена настроен.

Попробуйте следующие команды, войдя в систему MySQL как суперпользователь

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...