2013-10-23 13 views
16

私はリモートデータベースにMySQLデータベースを持っていますが、私はSQL接続権限しか持っていません。サーバーにFTPアクセスできません。データベースの完全なダンプを行う必要があります。私はmysqldumpを試しましたが、問題はサーバー上に出力を作成しているため、FTPを持っていないためサーバーからの出力が得られません。どうすればクリーンバックアップを行い、ローカルマシンのダンプを取得できますか? (もちろんバックアップは私のローカルマシンにリストアする必要があります)リモートデータベースにMySQLデータベースをバックアップする方法

おかげ スティーブン

+0

私はこの問題を理解していません。 mysqldumpはダンプを標準出力に書き出します。リダイレクトすると、サーバではなくローカルホストに送られます。 – Barmar

+0

mysqldumpを実行するために私は最初にサーバにログインする必要があります。私は権限を持っていません.MysqlサーバへのSQL接続のみです。 –

+2

'mysqldump'はリモートサーバにアクセスする' --host'オプションをとります。 mysqlコマンドのように。 – Barmar

答えて

21

はあなたがmysqldumpにオプションとしてサーバ名を指定することができます。

mysqldump --host servername dbname > dbname.sql 
+0

私は何度もそれを使用しましたが、いつも不思議だった - 恐ろしい悪用ではないですか?つまり、ホスト名とdb名を持つ人は、パスワードなしでDB全体をコピーできますか? –

+6

mysqlの他の用途と同様にパーミッションをチェックします。 – Barmar

2

あなたはMySQLのワークベンチhttp://www.mysql.com/products/workbench/を使用することができますユーザーフレンドリーなインターフェイスを介してローカルフォルダに直接バックアップすることができます

+2

また、サーバーへのSSHアクセスしかない場合、Workbenchも機能します。そしてそれはUbuntu上で利用可能です: 'sudo apt-get install mysql-workbench'。 –

0

リモートサーバーに接続してこのツールでバックアップできるSQLyogを使用します。

0

サーバーがPHPを承認した場合は、Adminerをアップロードして試すことができます。私はPHPMyAdminのReplacerとしてそれが好きで、あなたはそれを使ってバックアップを作成することができます!

18
mysqldump --host hostaddress -P portnumber -u username -ppassword dbname > dbname.sql 

は、通常のMySQLのリモートポートは、ここでは3306です。例を次に示します。デフォルトでは

mysqldump --host 192.168.1.15 -P 3306 -u dev -pmjQ9Y mydb > mydb.sql 
+3

-pパスワードのあとに空白が1つあることを確認してください – jpwynn

+0

@jpwynnなぜそういうのでしょうか? –

+0

man mysqldump:...コマンドラインでパスワードを指定することは安全でないとみなすべきです... https://dev.mysql.com/doc/refman/5.7/en/password-security-user.html – alditis

0

mysqldump.exeロックテーブルなので、他のSQLアクションがダンプ中に可能ではありません。任意のテーブルをロックせずに、バックアップに完全なリモートデシベルを次の構文を使用して、ローカルマシン上のすべてをダンプ:

mysqldump -u username -p --single-transaction --quick --lock-tables=false -h ipaddress myDB > backup.sql 

変更usernameご自身のユーザー名に、リモートIPアドレスにipaddressを変更し、実際にmyDBデータベースをバックアップします。これにより、パスワードの入力が求められます。一旦提供されると、ダンプが開始されます。

関連する問題