Host 'xxx.xx.xxx.xxx' nu este permis să se conecteze la acest server MySQL

Acest lucru ar trebui să fie mort de simplu, dar nu nu ia-l să lucreze pentru viața de mine. Am'm doar încearcă să se conecteze de la distanță la serverul meu MySQL.

conectarea ca

mysql -u root -h localhost -p  

funcționează bine, dar încearcă

mysql -u root -h 'any ip address here' -p

eșuează cu eroarea

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server

În anii `mysql.utilizator masa, acolo este exact același intrare pentru utilizator 'rădăcină' cu host 'localhost' ca un alt host '%'.

Am'm la inteligența mea' end, și nu au nici o idee cum să procedeze. Orice idei sunt binevenite.

Comentarii la întrebare (1)
Soluția

Eventual o măsură de precauție. Ai putea încerca adăugarea unui nou cont de administrator:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

Deși ca Pascal și alții au remarcat-o's nu este o idee bună de a avea un utilizator cu acest tip de acces deschis la orice IP. Dacă aveți nevoie de un utilizator administrativ, utilizarea de rădăcină, și lăsați-l pe localhost. Pentru orice alta actiune specifica exact privilegiile de care aveți nevoie și limita de accesibilitate a utilizatorului ca Pascal a sugera mai jos.

Edit:

Din MySQL FAQ:

Dacă nu vă puteți da seama de ce ai Acces refuzat, scoateți de la utilizator masa toate intrările care au Host valorile conțin wildcard-uri (intrări care conțin '%' sau '_' caractere). O foarte eroare comună este de a introduce un nou de intrare cu Gazda='%' și Utilizator='some_user', gândindu-se că acest vă permite să specificați localhost pentru a pentru a vă conecta la aceeași mașină. La motivul pentru care acest lucru nu funcționează este că implicit privilegii includ o de intrare cu Host='localhost' și Utilizatorul=''. Pentru că intrarea are o serie valoare 'localhost' care este mai specific decât '%', acesta este utilizat în preferința pentru noua intrare atunci când conectarea la localhost! Corect procedura este de a introduce o a doua intrare cu Host='localhost' și Utilizator='some_user', sau pentru a șterge de intrare cu Host='localhost' și Utilizatorul=''. După ștergerea intrare, amintiți-vă să emită o CULOARE PRIVILEGII declarație pentru a reîncărca tabele de grant. Vezi, de asemenea, Secțiunea 5.4.4, "Acces Control, Etapa 1: Conexiune Verificare".

Comentarii (8)

Unul are pentru a crea un nou Utilizator MySQL și atribui privilegii ca mai jos în Interogare prompt` prin phpMyAdmin sau command prompt:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

Odată terminat cu toate cele patru întrebări, ar trebui să se conecteze cu numele de utilizator / parola`

Comentarii (5)

Meu mesaj de eroare similară a fost și a spus 'Host XXX nu este permis să se conecteze la acest server MySQL' chiar dacă am fost folosind rădăcină. Aici's cum să vă asigurați că rădăcina are permisiunile corecte.

Mea setup:

  • Ubuntu 14.04 LTS
  • MySQL v5.5.37

Soluție

  1. Deschide fișierul sub 'etc/mysql/my.cnf'
  2. Verificați pentru:
  • port (implicit aceasta este 'port = 3306')
  • bind-address (implicit aceasta este 'bind-address = 127.0.0.1'; dacă doriți să deschideți la toate, atunci doar comentați această linie. Pentru exemplul meu, am'll spune efectiv serverul este pe 10.1.1.7)
  1. Acum acces la baza de Date MySQL pe serverul real (sa zicem de la distanță adresa este 123.123.123.123 la portul 3306 ca utilizator 'rădăcină' si as vrea sa schimb permisiunile la baza de date 'dataentry'. Amintiți-vă pentru a schimba Adresa IP, Port, și numele bazei de date la setările)

mysql -u root -p Introduceți parola: mysql>ACORDA TOATE ON . la rădăcină@'123.123.123.123' IDENTIFICATE PRIN 'pune-ți-parola'; mysql>CULOARE PRIVILEGII; mysql>ieșire

  1. sudo serviciu mysqld restart
  2. Ar trebui să fie acum posibilitatea de a conecta de la distanță la baza de date. De exemplu, am'm folosind MySQL Workbench și punerea în 'Hostname:10.1.1.7', 'Port:3306', 'nume de Utilizator:root'
Comentarii (4)

Ai nevoie de a acorda acces la utilizatorul de la orice gazdă.

Acest lucru este cum să adăugați noi privilegiul de phpmyadmin

Du-te la Privilegii > Adăugați un Utilizator nou

Selectați Orice Gazdă pentru utilizator dorit

Comentarii (1)

Doar să efectuați următorii pași:

  1. a se Conecta la mysql
mysql -uroot -p
  1. a Crea utilizare
CREATE USER 'user'@'%' IDENTIFIED BY 'password';
  1. a Acorda permisiuni
 GRANT ALL PRIVILEGES ON \*.\* TO 'user'@'%' WITH GRANT OPTION;
  1. drepturi de Culoare
FLUSH PRIVILEGES;
Comentarii (2)

Mesajul `*Host ''xxx.xx.xxx.xxx'' nu este permis să se conecteze la acest server MySQL este un răspuns de la serverul MySQL la MySQL client. Observa cum se întoarce adresa IP și nu hostname.

Daca're încercarea de a conecta cu mysql -h<hostname - > -u -p` și returnează acest mesaj cu adresa de IP, atunci serverul MySQL e't de capabil de a face o căutare inversă pe client. Acest lucru este critic, pentru că asta e modul în care acesta hărți client MySQL pentru a granturilor.

Asigurați-vă că puteți face o nslookup <mysqlclient> DE la serverul MySQL. Dacă asta nu&#39;t de lucru, atunci nu&#39;s nici o intrare în serverul DNS. Alternativ, puteți pune o intrare în serverul MySQL&#39;s HOSTS ( ` <- ordinul De aici s-ar putea contează).

O intrare în serverul meu's găzdui fișierul care să permită o căutare inversă de client MySQL rezolvat această problemă.

Comentarii (1)

Dacă modificați grant tabele manual (folosind INSERT, UPDATE, etc.), tu ar trebui să execute o CULOARE PRIVILEGII declarația a spune server pentru a reîncărca tabele de grant.

PS: m-am n't recomanda pentru a permite orice gazdă pentru a vă conecta pentru orice utilizator (mai ales la "radacina" utilizare). Dacă utilizați mysql pentru o aplicație client/server, prefer o adresa de subrețea. Dacă utilizați mysql cu un server web sau un server de aplicații, utilizați anumite ip-uri.

Comentarii (0)

Mod simplu:

Grant All Privileges ON *.* to 'USER_NAME'@'%' Identified By 'YOUR_PASSWORD'; 

apoi

FLUSH PRIVILEGES;

done!

Comentarii (2)

Cele mai multe răspunsuri aici vă arăt crearea utilizatorilor cu gazdă două valori: una pentru "localhost", și unul pentru %.

Vă rugăm să rețineți că, cu excepția pentru un built-in localhost ca utilizator root, nu't nevoie pentru a face acest lucru. Dacă pur și simplu doriți pentru a face un nou utilizator, care pot loga de oriunde, puteți utiliza

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT  ON  TO myuser;

și acesta va funcționa bine. (Cum au menționat și alții, l's o idee teribil de a acorda privilegii administrative de la un utilizator din orice domeniu.)

Comentarii (0)

Doar folosi interfața furnizată de MySql's GUI Tool (SQLyog):

Faceți clic pe User manager:

Acum, dacă doriți să acorde acces PENTRU ORICE ALTE PC de la DISTANȚĂ, asigurați-vă doar că, la fel ca în sub imagine, Gazda valoarea câmpului este % (care este wildcard)

Comentarii (0)

simplu mod este de a vă phpmyadmin cu contul de root , acolo du-te la baza de date mysql și selectați tabelul de utilizare , acolo edita contul de root și în gazdă domeniul adăuga % wild card . și apoi prin ssh privilegii culoare

 FLUSH PRIVILEGES;
Comentarii (1)

Doar găsi o cale mai bună de a face asta de la hosting panoul de control (I'm folosind DirectAdmin aici)

pur și simplu du-te la țintă server DB în panoul de control, în cazul meu: MySQL administrare -> selectați DB -> veți găsi: "Acces Gazde", pur și simplu adăugați gazdă de la distanță și de lucru acum!

Cred că nu este o opțiune similară pe cealaltă C. panouri ca plesk, etc..

Am'm sper că a fost util pentru tine.

Comentarii (0)

Dacă acesta este un recent mysql instalat, apoi înainte de a schimba ceva, încercați pur și simplu pentru a executa această comandă și apoi încercați din nou:

flush privileges;

Acest singur rezolvă problema pentru mine pe Ubuntu 16.04, mysql 5.7.20. YMMV.

Comentarii (0)

Păi ce poți să faci este doar de a deschide mysql.cfg și aveți pentru a schimba Bind-address pentru asta

bind-address = 127.0.0.1

și apoi Reporniți mysql și vă va fi capabil să se conecteze la acel server pentru asta.

Uite asta poti avea o idee de forma asta.

acest lucru este real sol

Comentarii (3)

Dacă se întâmplă să fie rulează pe Windows calculator; O soluție simplă este de a rula serverul MySQL instanță expertul de configurare. Este în MYSQL grup în meniul start. Pe cel de-al doilea la ultimul ecran faceți clic pe caseta pe care scrie "permite acces root la mașinile de la distanță".

Comentarii (0)

CPANEL soluție

Du-te la Cpanel, uita-te pentru Remote MySQL. Adauga IP în câmpul de introducere:

Gazdă (% wildcard este permis)

Comentariu să-mi amintesc ce IP, care este. Asta a fost pentru mine.

Comentarii (0)

Pe off sansa pe care cineva se confruntă cu această problemă se confruntă din cadrul SQLyog, acest lucru s-a întâmplat:

Am avut conectat la baza de date la distanță (din cadrul SQLyog) și a lucrat timp de câteva ore. După aceea am plecat din sistem, pentru câteva minute, apoi s-a întors pentru a continua munca mea - EROARE 1130 ! Degeaba am incercat lucrat; Repornirea SQLyog n't fix it. Apoi am repornit sistemul - încă n't de lucru.

Așa că am încercat conectarea la borna - a mers. Apoi rejudecat pe SQLyog ... si a functionat. Pot't explica altfel decât prin 'aleator de calculator quirkiness', dar cred că ar putea ajuta pe cineva.

Comentarii (0)

Acest lucru pentru DirectAdmin;

  1. Du-te la dumneavoastră DirectAdmin.
  2. Du-te la dumneavoastră MySQL Management.
  3. Selectați "bază de date".
  4. Sub Accesează Gazdă tab, există un câmp. Trebuie să completați acest câmp de xxx.xx.xxx.xx.
  5. Faceți clic pe Adăugare Gazdă`.

Terminat. Acum puteți accesa la acest DB cu your_database_username&your_database_password`. Atât De Simplu!

Comentarii (0)

Acest răspuns ar putea ajuta cineva...

Toate aceste răspunsuri nu ajuta, atunci am realizat că am uitat să verific un lucru important.. port :)

Am mysql rulează într-un container docker care rulează pe un port diferit. Am fost îndreptat la gazda mea mașină pe portul 3306, care am un server mysql rulează pe. Recipient meu expune la server pe portul 33060. Deci, în tot acest timp, mă uitam la alt server! doh!

Comentarii (0)
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

această eroare pentru că nici o parolă de la rădăcină , iar acest lucru Poate că a avut loc cu tine, atunci când încercați să vă conectați din afara .

Comentarii (0)