Accedi al database remoto mysql dalla riga di comando


190

Ho un server con Rackspace. Voglio accedere al database dalla mia riga di comando della macchina locale.

Ho provato come:

mysql -u username -h my.application.com -ppassword

Ma dà un errore:

ERRORE 2003 (HY000):

Impossibile connettersi al server MySQL su "my.application.com" (10061)

Cosa causa questo errore e come posso collegarmi al database remoto?


5
10061= Connessione rifiutata
Danny Beckett

Risposte:


294

Per accedere direttamente a una console mysql remota, utilizzare il comando seguente:

mysql -u {username} -p'{password}' \
    -h {remote server ip or name} -P {port} \
    -D {DB name}

Per esempio

mysql -u root -p'root' \
        -h 127.0.0.1 -P 3306 \
        -D local

nessuno spazio dopo -p come specificato nella documentazione

Ti porterà direttamente alla console mysql passando al database menzionato.

31-07-2019 - sintassi modificata


23
Ho dovuto racchiudere la password tra virgolette singole. vale a diremysql -u USERNAME -p'PASSWORD' -h REMOTE_SERVER_IP DB_NAME
Nick Brady,

2
Per specificare il nome del database è necessario aggiungere -D. mysql -u {username} -p {password} -h {ip server remoto} -D {nome DB}
randeepsp

1
cosa succede se dobbiamo specificare il PORT specifico?
Serge

2
Non funzionava in Terminal su MacOS High Sierra versione 10.13.3
realPK

9
nessuno spazio -p intermedio
Ivan Chau,

33

modifica il file my.cnf:

vi /etc/my.cnf:

assicurati che:

bind-address=YOUR-SERVER-IP

e se hai la linea:

skip-networking

assicurati di commentarlo:

#skip-networking

non dimenticare di riavviare:

/etc/init.d/mysqld restart


bind-address = YOUR-SERVER-IP. qui quale IP devo menzionare è l'IP del server remoto?
user1986299

@ user1986299 no, hai bisogno dell'IP del tuo server (non del telecomando)
alfasin

1
dovresti concederti l'accesso ... accedi al tuo DB dal server locale digitando mysql e poi:grant all privileges on *.* to 'root'@'%' identified by 'your-password'
alfasin

5
Non concedere MAI 'root' @ '%' questa è un'enorme sicurezza no no!
josh123a123,

1
@alfasin questo è un piccolo ritocco di grande impatto, grazie!
Christopher Schönfeldt,

30

basta metterlo sul terminale di Ubuntu:

mysql -u username -h host -p

Ora premi invio

il terminale ti chiederà la password, inserisci la password e sei nel server di database


14

Prova questo comando mysql -uuser -hhostname -PPORT -ppassword.

Ho affrontato una situazione simile e in seguito, quando la porta mysql per host è stata inserita con il comando, è stata risolta.


5
mysql -u testuser -h 192.168.**.* -P 3306 -p passwordha funzionato per me
Mahebub A Sayyed l'

14

Per Mac, utilizzare il comando seguente:

mysql -u app -h hostaddress -P port -D dbname -p

e quindi inserire la password quando richiesto.


12

Se non si desidera utilizzare il tunnel ssh, in my.cnf o mysqld.cnf è necessario modificare 127.0.0.1 con l'indirizzo IP locale ( 192.168.1.100 ) per avere accesso tramite Lan. esempio sotto:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Cerca l' indirizzo bind in my.cnf o mysqld.cnf

bind-address            =  127.0.0.1

e modifica da 127.0.0.1 a 192.168.1.100 (indirizzo IP locale)

bind-address            =  192.168.1.100

Per applicare la modifica apportata, è necessario riavviare il server mysql utilizzando il comando successivo.

sudo /etc/init.d/mysql restart

Modifica la root dell'utente per l'accesso lan (esegui il muggito della query nel server remoto a cui vuoi avere accesso)

root@192.168.1.100:~$ mysql -u root -p

..

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

Se si desidera avere accesso solo da un indirizzo IP specifico, modificare 'root' @ '%' in 'root' @ '(indirizzo IP o nome host)'

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

Quindi è possibile connettersi:

nobus@xray:~$ mysql -h 192.168.1.100 -u root -p

testato sul server ubuntu 18.04


La migliore risposta! Grazie
Nastro


6

Presumo che tu abbia MySQL installato sulla tua macchina. Eseguire il comando seguente dopo aver inserito i dettagli mancanti:

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 


2

C'è un comando semplice.

mysql -h {hostip} -P {port} -u {username} -p {database}

Esempio

mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb

{hostip} non aggiungerà alcun tipo di dettaglio della porta come 192.10.10.26::45124
Manish Goswami,

1

questa soluzione ha funzionato per me:

Sul tuo computer remoto (esempio: 295.13.12.53) ha accesso al tuo computer remoto di destinazione (che esegue il server mysql)

ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 user@295.13.12.53

Ha spiegato:

ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port user@your_ip_address -N

your_ssh_mashine_ipaddress - non è un indirizzo IP locale, ma è un indirizzo IP a cui sei iscritto, in questo esempio 295.13.12.53

your_ssh_mashine_local_port -questa è la porta personalizzata non 22, in questo esempio è 3306.

target_ipaddress - ip della macchina che si sta tentando di scaricare il DB.

target_port - 3306 questa è la vera porta per il server MySQL.

user @ indirizzo_ip_utente: si tratta delle credenziali ssh per la macchina ssh connessa

Una volta fatto tutto ciò, torna alla tua macchina e fai questo:

mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql

Chiederà la password, inserisci la password e sarai connesso. Spero che questo ti aiuti.


1

Prova questo, funziona:

mysql -h {hostname} -u {username} -p {password} -N -e "{query da eseguire}"


0

Dovresti inserire la password con 'p'

mysql -u root -u 1.1.1.1 -p'MyPass'

0

Anch'io stavo ottenendo lo stesso errore. Ma l'ho trovato utile creando un nuovo utente mysql sul server mysql remoto e poi connettiti. Eseguire il comando seguente sul server remoto:

CREATE USER 'openvani'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'localhost WITH GRANT 
OPTION;
CREATE USER 'openvani'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Ora puoi connetterti con mysql remoto con il seguente comando.

mysql -u openvani -h 'any ip address'-p

Ecco il post completo:

http://openvani.com/blog/connect-remotely-mysql-server/


0

I server mysql sono generalmente configurati per ascoltare solo localhost (127.0.0.1), dove vengono utilizzati dalle applicazioni web.

Se questo è il tuo caso ma hai accesso SSH al tuo server, puoi creare un tunnel ssh e collegarti attraverso quello.

Sul tuo computer locale, crea il tunnel.

ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host

(questo esempio utilizza la porta locale 3307, nel caso in cui anche mysql sia in esecuzione sul computer locale e utilizzi la porta standard 3306)

Ora dovresti essere ale con cui connetterti

mysql -u $user -p -h 127.0.0.1 -P 3307

0

Questo ha funzionato per me in mysql 8, sostituiscilo hostnamecon il tuo hostname e port_numbercon il tuo port_number, puoi anche cambiare il tuo mysql_user se non è root

      mysql --host=host_name --port=port_number -u root -p

Ulteriori informazioni qui


0

Se sei su Windows, prova Visual Studio Code con i plugin MySQL, un modo semplice e integrato per accedere ai dati MySQL su un computer Windows. E le tabelle del database sono elencate e possono eseguire qualsiasi query personalizzata.

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.