Impossibile connettersi all'errore 111 del server MySQL [chiuso]


152

Ho installato il server mysql su linux box IP = 192.168.1.100 ma quando provo a connettermi a questo IP si verifica sempre un errore (111). ma usa localhost e 127.0.0.1 è OK.

beer @ beer-laptop # ifconfig | grep "inet addr"
          inet addr: 127.0.0.1 Maschera: 255.0.0.0
          inet addr: 192.168.1.100 Bcast: 192.168.1.255 Maschera: 255.255.255.0

beer @ beer-laptop # mysql -ubeer -pbeer -h192.168.1.100
ERRORE 2003 (HY000): impossibile connettersi al server MySQL su "192.168.1.100" (111)

beer @ beer-laptop # mysql -ubeer -pbeer -hlocalhost
Benvenuti nel monitor MySQL. I comandi finiscono con; o \ g.
L'ID della tua connessione MySQL è 160
Versione server: 5.1.31-1ubuntu2 (Ubuntu)

Digita "help;" o '\ h' per aiuto. Digita "\ c" per cancellare il buffer.

mysql> 

beer @ beer-laptop # mysql -ubeer -pbeer -h127.0.0.1
Benvenuti nel monitor MySQL. I comandi finiscono con; o \ g.
L'ID della tua connessione MySQL è 161
Versione server: 5.1.31-1ubuntu2 (Ubuntu)

Digita "help;" o '\ h' per aiuto. Digita "\ c" per cancellare il buffer.

mysql> 

Connettiti da un'altra macchina ha anche l'errore 111.

un altro @ altro-laptop # mysql -ubeer -pbeer -h192.168.1.100
ERRORE 2003 (HY000): impossibile connettersi al server MySQL su "192.168.1.100" (111)

In che modo la differenza tra usa localhost / 127.0.0.1 e 192.168.1.100 in questo caso. Non so come collegarmi a questo database da un'altra macchina.

Aiuto per favore. Grazie.

Risposte:


263

Probabilmente significa che il tuo server MySQL sta ascoltando solo l'interfaccia localhost.

Se hai linee come questa:

bind-address = 127.0.0.1

Nel tuo my.cnffile di configurazione , dovresti commentarli (aggiungi un # all'inizio delle righe) e riavvia MySQL.

sudo service mysql restart

Naturalmente, per fare ciò, devi essere l'amministratore del server.


6
ovviamente, non ha la skip-networkinglinea ;-)
Michael Krelin - hacker

11
come sapere dove si trova mysql my.cnf: stackoverflow.com/questions/2482234/…
Cyril Jacquart

2
ma cosa succede quando PUOI connetterti ad esso dal workbench mysql? Ho lo stesso problema.
George Pamfilis,

3
Ho seguito ciò che è stato dato nella risposta, ma non riuscivo ancora a farlo funzionare. Ho quindi capito che il parametro "bind-address" si trova nel file "/etc/mysql/mysql.conf.d/mysqld.cnf". L'ho commentato laggiù e ha funzionato!
Yahya,

3
le versioni più recenti di ubuntu> = 16.04 possono avere questa linea in /etc/mysql/mysql.conf.d/myqld.cnf
dellasavia

38

111 significa connessione rifiutata , il che a sua volta significa che mysqld ascolta solo l' localhostinterfaccia.

Per modificarlo potresti voler guardare il bind-addressvalore nella mysqldsezione del tuo my.cnffile.


Vale anche la pena verificare se il numero di porta è valido. Mancata corrispondenza :3306e :3307può causare anche 111 errori.
NXT

2
@NXT, non so nemmeno se mysql può ascoltare su porte diverse su interfacce diverse, ma è uno scenario molto improbabile (dati i sintomi nel post originale) anche se può. Quindi ci possono essere regole del firewall, ecc. Ci sono molti modi per ottenerlo, ma la probabilità differisce ...
Michael Krelin - hacker

Non significa sempre questo. I miei my.cnffile non hanno nessuna bind-addresso skip-networkinglinea, eppure ottengo lo stesso errore. Nessun firewall installato neanche. Sono uscito dalle idee.
Deleet,

Bene, 111 significa sempre connessione rifiutata :) E solo l'host locale è in questo caso particolare a causa di altre prove. Se fornisci ulteriori dettagli sul tuo caso, potrei essere in grado di aiutarti? Inoltre, a seconda del tuo sistema al giorno d'oggi, è probabile che tu abbia la configurazione sparsa su più file.
Michael Krelin - hacker

10

Se tutte le risposte precedenti non hanno fornito alcuna soluzione, è necessario verificare i privilegi dell'utente.

Se è possibile accedere come rootmysql, è necessario aggiungere questo:

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY  '***';
GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.100' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Quindi prova a riconnetterti utilizzando mysql -ubeer -pbeer -h192.168.1.100. Dovrebbe funzionare.


17
non penso che l'errore relativo ai privilegi dell'utente darebbe l'errore 111.
ufk

1
In realtà ha funzionato, e stavo ottenendo anche l'errore 111.
Borjante,

sembra che questa sia una soluzione migliore dell'aprire mysql all'intera rete o alle reti commentando la riga 127.0.0.1. dovrebbe essere la soluzione migliore.
nyxee,

7

Se stai eseguendo cPanel / WHM, assicurati che IP sia inserito nella whitelist nel firewall. Dovrai anche aggiungere quell'IP all'elenco IP SQL remoto nell'account cPanel a cui stai tentando di connetterti.


1
Un buon "dire" per vedere se è un firewall che causa l'errore è che ci vorrà del tempo prima che l'errore venga restituito. Se MySQL sta causando problemi, la risposta dovrebbe essere praticamente istantanea.
Grim ...

Puoi spiegarci come si fa?
Utente
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.