Cum pentru a permite conexiuni la distanță la mysql

Am instalat MySQL Community Edition 5.5 pe mașina locală și vreau pentru a permite conexiunile la distanță, astfel încât să mă pot conecta la o sursă externă.

Cum pot face asta?

Comentarii la întrebare (4)
Soluția

Care este permis în mod implicit pe MySQL.

Ce este dezactivată în mod implicit este la distanță de acces "root". Dacă doriți să activați acest lucru, executați această comandă SQL la nivel local:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

Și apoi a găsi următoarea linie și comentariul** în meu.cnf de fișier, care trăiește de obicei pe /etc/mysql/my.cnf pe Unix/OSX sisteme. În unele cazuri locația fișierului este /etc/mysql/mysql.conf.d/mysqld.cnf).

Daca's un sistem Windows, îl puteți găsi în directorul de instalare MySQL, de obicei, ceva de genul C:\Program Files\MySQL\MySQL Server 5.5\, iar numele fișierului va fi mea.ini.

Schimba linia

 bind-address = 127.0.0.1

pentru a

 #bind-address = 127.0.0.1

Și reporniți serverul MySQL (Unix/OSX, Windows) pentru ca modificările să aibă efect.

Comentarii (27)

După ce faci toate cele de mai sus am putea't loga ca "root" de la distanță, dar Telnetting să port 3306 a confirmat că MySQL a fost acceptarea de conexiuni.

Am început să mă uit la utilizatori în MySQL și am observat că au fost mai multe utilizatorii de root cu parole diferite.

select user, host, password from mysql.user;

Deci, în MySQL am set toate parolele de root din nou și am putut în sfârșit să vă conectați de la distanță ca "root".

use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;
Comentarii (5)

Doar o notă din experienta mea, puteți găsi fișierul de configurare sub această cale /etc/mysql/mysql.conf.d/mysqld.cnf.

(M-am chinuit ceva timp pentru a găsi această cale)

Comentarii (2)

În cazul meu, am fost încercarea de a se conecta la un server mysql pe cent OS. După ce trece printr-o mulțime de soluții (acordarea de toate privilegiile, eliminarea ip legături,care să permită crearea de rețele) problema a fost încă rezolvate.

După cum sa dovedit, în timp ce caută în diverse soluții,am dat peste iptables, care a făcut să-mi dau seama mysql portul 3306 nu accepta conexiuni.

Aici este o notă mică pe cât am verificat și soluționat această problemă.

  • Verificarea dacă portul este de a accepta conexiuni:
telnet (mysql server ip) [portNo]
  • Adăugarea ip masă regulă pentru a permite conexiuni pe portul:
iptables -A INPUT-i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • Nu aș recomanda acest lucru pentru mediul de producție, dar în cazul în iptables nu sunt configurate corect, adăugând regulile ar putea să nu mai rezolva problema. În acest caz să fie făcut următoarele:
service iptables stop

Sper că acest lucru vă ajută.

Comentarii (0)

Vă rugăm să urmați pașii de mai jos menționat inorder pentru a seta wildcard accesul de la distanță pentru Utilizator MySQL.

(1) a Deschide cmd.

(2) navigați la calea C:\Program Files\MySQL\MySQL Server 5.X\bin și rulați această comandă.

mysql -u root -p

(3) Introduceți parola de root.

(4) Executați următoarea comandă pentru a oferi permisiunea.

ACORDA TOATE PRIVILEGIILE PE *.* LA 'NUMELE DE UTILIZATOR'@'IP' IDENTIFICAT PRIN 'PAROLA';

nume de UTILIZATOR: numele de Utilizator doriți să vă conectați la serverul MySQL.

IP: adresa IP Publică de la care doriți să permiteți accesul la MySQL server.

PAROLA: Parola de utilizator folosit.

IP poate fi înlocuit cu %, pentru a permite utilizatorului să se conecteze la orice IP adresa.

(5) Spăla previleges prin următoarea comandă și de ieșire.

PRIVILEGII de spălare;

ieșire; sau

Comentarii (2)

Dacă ați instalat MySQL de la "brew" este într-adevăr nu asculta doar pe interfața locală în mod implicit. Pentru a repara erorile de care aveți nevoie pentru a edita /usr/local/etc/my.cnf si schimba bind-address "de la" 127.0.0.1*.

Apoi rulați-o fiertură de servicii restart mysql`.

Comentarii (2)

Dacă serverul MySQL proces este de a asculta pe 127.0.0.1 sau ::1 numai atunci va fi capabil să se conecteze de la distanță. Dacă aveți o bind-address setare în /etc/my.cnf acest lucru ar putea fi sursa problemei.

Veți avea, de asemenea, să adăugați privilegii pentru un non- "localhost" utilizator la fel de bine.

Comentarii (2)

Doar F. Y. Am Mi-am tras părul cu această problemă pentru ore.. în cele din urmă să-mi sun furnizor de hosting și a constatat că, în cazul meu, folosind un server de nor, care în panoul de control pentru 1and1 au un al doilea firewall care aveți pentru a clona și adăugați portul 3306. După ce am adăugat direct în..

Comentarii (2)

Pentru cine are nevoie de ea, verifica firewall portul 3306 este deschis, dacă firewall-ul de serviciu se execută.

Comentarii (0)

Acest blog Cum să setup un MySQL server pe Local Area Network va fi util în crearea unei MySQL de la zero

Comentarii (2)

Și pentru OS X oamenii de acolo să fie conștienți de faptul că bind-address parametru este setat de obicei în launchd plist și nu în a mea.ini. Deci, în cazul meu, am scos <string>--bind-address=127.0.0.1</string> "de la" /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist.

Comentarii (1)

Dacă mysqlda o [bind address](https://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_bind-address) setat la o loopback/adresa locală (de exemplu,127.0.0.1`), serverul nu va fi accesibil de la distanță pentru gazde, pentru că o interfață de loopback nu poate fi accesat de la orice gazdă de la distanță.

Setați această opțiune pentru a 0.0.0.0 (:: pentru IPv4+6) să accepte conexiuni de la orice gazdă, sau în alt extern-află adresa, dacă doriți pentru a permite doar conexiuni pe o singură interfață.

Sursa

Comentarii (0)

unele ori necesitatea de a utiliza numele de pc pe windows

primul pas) pune în fișierul de configurare mysql:

mysqld.cnf SET bind-address= 0.0.0.0

(să recibe conexiuni tcp/ip)

al doilea pas) face utilizator în mysql, masă de utilizatori, cu numele de pc pe windows propierties, NU ip

Comentarii (0)