come usare mysqldump con localhost:3307?

Database MySQL è stato istituito con Localhost:3307. Sto cercando di usare il comando mysqldump per eseguire il backup di tutti i dati dal mio collega. Ho scritto la riga di comando simile a questo: mysqldump -u root -h 3307 -p database > “path_to_dumpfile\database.sql”. allora, mi è stato richiesto di immettere la password (che non si chiede più quando ho aperto il banco di lavoro). Il problema è che, ottengo il seguente messaggio di errore: “mysqldump: errore:2005: unknown server mysql ‘3307’ <2> quando si tenta di connettersi”
C’è qualcosa che ho fatto di sbagliato? o di un passaggio che non ho seguito?

Grazie per il vostro aiuto.

  • -h localhost --port=3307 invece. il -p opzione forze mysql utilità della riga di comando per la richiesta di una password.
  • Grazie Marc B, funziona benissimo!
  • Utilizzando -P (che è un capitale P) in tutti i MySQL da linea di comando utilità di specificare la porta. Questo è l’abbreviazione di --port che Marc B ha sottolineato.
InformationsquelleAutor T3000 | 2011-07-19



6 Replies
  1. 2

    Ho un problema analogo, nel senso che ho due istanze di mysql in esecuzione sul mio server, uno sulla porta 3306 e uno 3307. Sembra che mysqldump, anche se è necessario specificare la porta 3307, è il collegamento per l’istanza 3306. La mia soluzione era quella di chiudere l’istanza in esecuzione sul 3306. Posso solo supporre che questo è un bug come mysqldump identifica l’istanza in esecuzione.

    • “La mia soluzione era quella di chiudere l’istanza in esecuzione sul 3306”: questa non può essere considerata una soluzione, come se ho bisogno anche la 3306 esempio, non funziona.
    • Grazie per la segnalazione l’ovvio.
  2. 2

    Ho avuto lo stesso problema, anche con l’opzione –porta parametro, e ho risolto utilizzando questo suggerimento da un serverfault risposta:

    Quando localhost parametro, MySQL utilizza i socket. Usare 127.0.0.1
    invece.

    • Non funziona. 127.0.0.1 ancora si connette al mio 3306 mysqld
    • Hai aggiunto –porta parametro del comando mysqldump?
    • sì. L’arresto di mio 3306 esempio, è possibile eseguire il dump del 3307 istanza, con l’aggiunta del parametro port. Usando localhost o 127.0.0.1 non cambia nulla per me.
    • Questa soluzione ha funzionato per me.
  3. 1

    Come altre proposte, il problema potrebbe essere l’utilizzo del protocollo errata quando si utilizza localhost/127.0.0.1.
    Quindi, oltre a --port=3307 anche aggiungere protocollo.

    Provare:

    --protocol=TCP --port=3307

    Da man mysqldump:

    – protocollo={TCP|SOCKET|TUBO|MEMORIA}

    Il protocollo di connessione da utilizzare per la connessione al server. È utile quando gli altri parametri di connessione normalmente causa di un protocollo da utilizzare diverso da quello che si desidera. Per i dettagli sui valori consentiti, vedere la Sezione 4.2.2, “la Connessione al Server MySQL”.

    • Può spiegare perché che potrebbe risolvere il problema?
    • Sì @nico-haase, ora c’è qualche info in più. Il mio post originale è stato solo per salvare la soluzione che finalmente ha funzionato per me, dopo aver lavorato nel corso del tempo, e volevo andare a casa. 🙂
  4. 1

    Provare ad aggiungere --port=port_num alla riga di comando invece di -h (o -P port_num se il primo non funziona) così:

    mysqldump -u root --port=3307 -p database > ..\path_to_dumpfile\database.sql

    Mi consiglia di dare un’occhiata al manuale di MySQL per saperne di altri possibili argomenti per la mysqldump di comando, collegare come indicato di seguito.

    Fonte: https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html

  5. 0

    So che sono in ritardo per questo thread. Ma può essere di aiuto a qualcuno in futuro.

    echo off 
    
    set TIMESTAMP=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%
    
    "C:\Program Files\MySQL\MySQLWorkbench6.3CE\mysqldump.exe" -uroot -ppassword -hlocalhost -P3307 ecommerce  > C:\Users\User\Desktop\backmeup\destination_\ecommerce.%TIMESTAMP%.sql 

    Come tutti sappiamo, -p indica la password mentre -P indica la porta.

    Per qualche ragione, se io uso gli spazi -u root -p password ecc…. sarà ancora dare un errore.

    E l’utilizzo anche –database non funziona per me. Invece ho aggiunto:

    echo off 
    
    set TIMESTAMP=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%
    
        "C:\Program Files\MySQL\MySQLWorkbench6.3CE\mysqldump.exe" -uroot -ppassword -hlocalhost -P3307 ecommerce  > C:\Users\User\Desktop\backmeup\destination_\ecommerce.%TIMESTAMP%.sql 
        "C:\Program Files\MySQL\MySQLWorkbench6.3CE\mysqldump.exe" -uroot -ppassword -hlocalhost -P3307 equipment_rent  > C:\Users\User\Desktop\backmeup\destination_\equipment_rent.%TIMESTAMP%.sql 
  6. -1

    mysqldump –host 192.168.1.1 –porta 3307 -u root -pYourrootpassword –routine di-tutti-database |gzip > /yourbackuppath/filename_date +%d.sql.gz

Lascia un commento