sql >> データベース >  >> RDS >> Mysql

PHPでMySQLデータベースをバックアップする方法は?

    PHPからバックアップコマンドを実行することはできますが、実際にはPHPとは何の関係もありません。すべてはMySQLに関するものです。

    mysqldumpユーティリティを使用してデータベースをバックアップすることをお勧めします。ドキュメントはここにあります: http://dev.mysql。 com / doc / refman / 5.1 / en / mysqldump.html

    mysqldumpの基本的な使用法は

    です。
    mysqldump -u user_name -p name-of-database >file_to_write_to.sql
    

    その後、

    のようなコマンドでバックアップを復元できます。
    mysql -u user_name -p <file_to_read_from.sql
    

    cronにアクセスできますか? mysqldumpをcronジョブとして実行するPHPスクリプトを作成することをお勧めします。それは次のようなものになります

    <?php
    
    $filename='database_backup_'.date('G_a_m_d_y').'.sql';
    
    $result=exec('mysqldump database_name --password=your_pass --user=root --single-transaction >/var/backups/'.$filename,$output);
    
    if(empty($output)){/* no output is good */}
    else {/* we have something to log the output here*/}
    

    mysqldumpが利用できない場合、この記事ではSELECT INTO OUTFILEを使用した別の方法について説明しています。 およびLOAD DATA INFILE コマンド。 PHPへの唯一の接続は、PHPを使用してデータベースに接続し、SQLコマンドを実行していることです。これは、コマンドラインのMySQLプログラムであるMySQLモニターからも実行できます。

    非常に簡単です。1つのコマンドでSQLファイルを作成し、復元するときにロード/実行します。

    selectのドキュメントはoutfileここ にあります。 (ページでoutfileを検索するだけです)。 LOAD DATA INFILEは、基本的にこれの逆です。 こちら をご覧ください。 ドキュメント用。



    1. カンマ区切りの値を持つ単一のMySQLフィールド

    2. JDBCタイプの方言マッピングなし:1111

    3. 遅延初期化されたインスタンスを取得しようとしているLazyInitializationException

    4. 致命的なエラー:未定義の関数session_register()の呼び出し