Een van mijn klanten nam contact met me op voor een probleem met een gekoppelde server tussen SQL Server en MySQL Server. Aangezien ik voornamelijk met SQL Server werk, was het een plezier om MySQL Server te installeren en te verbinden. Terwijl ik het probleem probeerde te simuleren en ik een gekoppelde server wilde maken. In deze blog leren we hoe we MySQL-verbindingsfout kunnen oplossen [MySQL][ODBC 5.3(w) Driver]Host 'IP' mag geen verbinding maken met deze MySQL-server.
Ik heb MySQL Server op een server geïnstalleerd en het wachtwoord van de rootgebruiker opgegeven. Toen ik probeerde verbinding te maken met MySQL Server via ODBC.
Zodra ik op de test heb geklikt, zie ik onderstaande fout.
Het IP-adres dat in de foutmelding wordt genoemd, is het IP-adres van de client die verbinding probeert te maken. Het sms-bericht is als volgt:
Verbinding mislukt
[MySQL][ODBC 5.3(w) Driver]Host 'IP' mag geen verbinding maken met deze MySQL-server:
Ik heb deze fout nog nooit gezien tijdens het werken met SQL Server, dus ik had geen idee van deze fout. Toen ik aan het onderzoeken was, leerde ik hieronder.
Standaard staat MySQL niet toe dat externe clients verbinding maken met de MySQL-database.
De snelste manier om dat te verifiëren is als volgt. Als we de tabel mysql.user controleren, is er een vermelding voor gebruiker 'root' met host 'localhost'.
We moeten dus toestemming geven om verbinding te maken met MySQL Server met een client.
OPLOSSING/OPLOSSING
Controleer eerst of het geen firewall-probleem is.
Zoals we eerder hebben besproken, is het een probleem met machtigingen. We kunnen dan toestemming geven met het commando.
Use mysql; GRANT ALL ON *.* to root@'x.x.x.x' IDENTIFIED BY 'your-root-password';
Je kunt hiervoor ook MySQL Workbench gebruiken. Onderstaand screenshot vertelt de te volgen stappen. Hetzelfde als het commando, we moeten gebruikersnaam, wachtwoord en IP opgeven in het grafische scherm.
Ik hoop dat deze blog zou helpen. Als u na de bovenstaande wijzigingen verbinding probeert te maken met de mysql-database vanaf deze externe client (we hebben de IP/hostnaam gegeven), zou u de foutmelding "Host mag geen verbinding maken met deze MySQL-server" niet meer moeten krijgen. We kunnen ook % gebruiken om alle hosts toe te staan, maar ik geef niet de voorkeur aan die optie.
Ik ben geen MySQL-expert, dus voel je vrij om commentaar te geven en me te laten weten of er betere manieren zijn.