Един от моите клиенти се свърза с мен за проблем със свързан сървър между SQL Server и MySQL Server. Тъй като работя предимно със SQL Server, беше забавно инсталирането и свързването на MySQL Server. Докато се опитвах да симулирам проблема и исках да създам свързан сървър. В този блог ще научим как да поправим грешка при връзката с MySQL [MySQL][ODBC 5.3(w) Driver]Host „IP“ не е разрешен да се свързва с този MySQL сървър.
Инсталирах MySQL Server на сървър и предоставих паролата на root потребителя. Когато се опитвах да се свържа с MySQL сървър с помощта на ODBC.
Веднага след като щракнах върху теста, виждам грешка по-долу.
IP адресът, споменат в съобщението за грешка, е IP на клиента, който се опитва да се свърже. Текстовото съобщение е както следва:
Неуспешна връзка
[MySQL][ODBC 5.3(w) Driver]Host „IP“ не е разрешен да се свързва с този MySQL сървър:
Никога не съм виждал тази грешка, докато работех със SQL Server, така че нямах представа за тази грешка. Когато проучвах, научих по-долу.
По подразбиране MySQL не позволява на отдалечени клиенти да се свързват с MySQL базата данни.
Най-бързият начин да проверите това е както следва. Ако проверим таблицата mysql.user, има запис за потребител „root“ с хост „localhost“.
И така, трябва да предоставим разрешение за свързване с MySQL Server към клиент.
ЗАОБХВАТНО РЕШЕНИЕ/РЕШЕНИЕ
Първо се уверете, че не е проблем със защитната стена.
Както обсъдихме по-рано, това е проблем с разрешенията. След това можем да дадем разрешение с помощта на командата.
Use mysql; GRANT ALL ON *.* to root@'x.x.x.x' IDENTIFIED BY 'your-root-password';
Можете също да използвате MySQL Workbench, за да направите това. По-долу екранната снимка казва стъпките, които трябва да се следват. Също като командата, трябва да дадем потребителско име, парола и IP на графичния екран.
Надявам се този блог да помогне. След горните промени, когато се опитате да се свържете с базата данни на mysql от този отдалечен клиент (дадохме IP/името на хост), повече не трябва да получавате съобщението за грешка „Хостът няма право да се свързва с този MySQL сървър“. Можем също да използваме %, за да разрешим всички хостове, но аз не предпочитам тази опция.
Аз не съм експерт по MySQL, така че не се колебайте да коментирате и да ме уведомите дали има по-добри начини.