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.