A obter o envio do MySQL da linha de comandos
estou a afastar-me do Linode porque não tenho as competências do Linux sysadmin necessárias; antes de completar a transição para um serviço mais amigável do noob, preciso de descarregar o conteúdo de uma base de dados MySQL. Há alguma maneira de fazer isto a partir da linha de comando?
10 answers
Pode conseguir isto usando a função da linha de comandosmysqldump .
Por exemplo:
Se for um DB inteiro, então:
$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql
Se é tudo DBs, então:
$ mysqldump -u [uname] -p[pass] --all-databases > all_db_backup.sql
Se forem tabelas específicas dentro de um DB, então:
$ mysqldump -u [uname] -p[pass] db_name table1 table2 > table_backup.sql
Pode mesmo ir até à auto-compressão da saída usando o gzip (se o seu DB for muito grande):
$ mysqldump -u [uname] -p[pass] db_name | gzip > db_backup.sql.gz
Se você quiser fazer isso remotamente e você tem o acesso ao servidor em questão, então o following would work (presuming the MySQL server is on port 3306):
$ mysqldump -P 3306 -h [ip_address] -u [uname] -p[pass] db_name > db_backup.sql
Deve largar o ficheiro .sql
na pasta de onde corre a linha de comandos.
Editar: como indicado nos comentários, para evitar a inclusão da sua senha no histórico do seu comando, use a opção -p
sem a senha. Vai pedir-te para o fazeres e não o gravar.
Nas últimas versões do mysql, pelo menos nas minhas, não podes colocar o teu passe no comando directamente.
Tens de correr:
mysqldump -u [uname] -p db_name > db_backup.sql
E depois vai pedir a password.
Nas janelas tem de indicar o bin mysql onde está o mysqldump.exe reside.
cd C:\xampp\mysql\bin
mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql
Guarde isto num ficheiro de texto como a cópia de segurança.cmd
Se a transferência do servidor remoto, aqui está um exemplo simples:
mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql
O-p indica que irá introduzir uma senha, que não se relaciona com o db_name. Depois de introduzir o comando, ser-lhe-á pedida a senha. Digite e pressione enter.
Vá para o directório de instalação MySQL e abra o cmd a partir daí. Em seguida, execute o comando abaixo para obter uma cópia de segurança de sua base de dados.
mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql
Apenas o tipo mysqldump
ou {[2] } no seu cmd irá mostrar how to use
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
Abra a linha de comandos e escreva directamente este comando. Não entres no mysql e depois Digitas este comando.
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
Se estiver a correr o MySQL para além do Porto predefinido:
mysqldump.exe -u username -p -P PORT_NO database > backup.sql
Usa isto. Se tiver a base de dados com o nome archiedb, usar mysql-p --databases archiedb > /home/database_backup.SQL
Assumindo que isto é o linux, escolha onde o ficheiro de salvaguarda será gravado.