MySQLデータエクスポートインポート

4819 ワード

MySQLベース
MySQLデータエクスポートインポートに関する記事の目的は2つあります.
1.メモ
2.開発者のテスト用
ツール
mysqlmysqldump
適用例
エクスポート
  • ライブラリ全体をローカルにバックアップするディレクトリをエクスポート
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -A > db.all.sql
    
    
    
    

  • 指定されたライブラリをローカルのディレクトリ(mysqlライブラリなど)にエクスポート
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql
    
    
    
    

  • ライブラリのテーブルをローカルディレクトリ(mysqlライブラリのuserテーブルなど)にエクスポート
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --tables mysql user> db.table.sql
    
    
    
    

  • 指定されたライブラリのテーブル(データのみ)をローカルのディレクトリ(mysqlライブラリのuserテーブルなど、フィルタ条件付き)にエクスポートします.
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-create-db --no-create-info --tables mysql user --where="host='localhost'"> db.table.sql 

  • ライブラリのすべてのテーブル構造をエクスポート
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-data --databases mysql > db.nodata.sql
    
    
    
    

  • は、クエリsqlのデータがtxt形式のファイルからローカルディレクトリ(各データ値間をタブで区切る)にエクスポートする、例えばsqlが'select user,host,password from mysqlである.user;'
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 --skip-column-names -B -e 'select user,host,password from mysql.user;' > mysql_user.txt
    
    
    
    

  • クエリsqlのデータをtxt形式のファイルとしてMySQLサーバにエクスポートする.MySQLにログインし、デフォルトのタブをカンマに変更します.(csv形式のファイルに適応する).指定したパス、mysqlには書く権限があります.tmpディレクトリを使って、ファイルが使い終わったら、削除したほうがいいです.
    SELECT user,host,password FROM mysql.user INTO OUTFILE '/tmp/mysql_user.csv' FIELDS TERMINATED BY ',';


  • インポート
  • は、mysqlライブラリの権限テーブルが含まれているため、インポートが完了するにはFLUSH PRIVILEGESを実行する必要があります.コマンド#コマンド#
         :
    
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 < db.all.sql
    
    
    
         :
    
      MySQL,  source  ,            .
    
    ......
    
    mysql> source /tmp/db.all.sql;
    
    

  • あるライブラリのデータを復元する(mysqlライブラリのuserテーブル)
         :
    
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 mysql < db.table.sql
    
    
    
         :
    
      MySQL,  source  ,            .
    
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 ...... mysql> use mysql; mysql> source /tmp/db.table.sql; 

  • MySQLサーバ上のtxt形式のファイルを復元します(FILE権限が必要で、各データ値の間は「タブ」で区切られています)
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
    
    ......
    
    mysql> use mysql;
    
    mysql> LOAD DATA INFILE '/tmp/mysql_user.txt' INTO TABLE user ;
    
    

  • MySQLサーバ上のcsv形式のファイルを復元します(FILE権限が必要で、各データ値の間に「カンマ」で区切られています)
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
    
    ......
    
    mysql> use mysql;
    
    mysql> LOAD DATA INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
    
    

  • ローカルtxtまたはcsvファイルをMySQLに復元
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
    
    ......
    
    mysql> use mysql;
    
    # txt
    
    mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user;
    
    # csv
    
    mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';


  • 注意事項
  • MySQL接続について-u$USERユーザー名-p$PASWDパスワード-h 127.0.0.1リモートサーバに接続する場合は、対応するホスト名またはIPアドレスで-P 3306ポート--default-character-set=utf 8指定文字セット
  • を置き換えます.
  • mysqlパラメータであるskip-column-namesについてデータ列の名前-Bを表示することなくmysqlプログラムをバッチで実行する.クエリーの結果はタブ間隔フォーマットとして表示されます.-eコマンド実行後、
  • を終了する
  • mysqldumpパラメータ-Aフルライブラリバックアップ--routinesバックアップストレージプロセスと関数--default-character-set=utf 8設定文字セット--lock-all-tablesグローバルコンシステンシロック--add-drop-database構築文を実行するたびに、DROP TABLE IF EXIST文--no-create-db CREATE DATABASE文を出力しない--no-create-info CREATE TABLE文を出力しない--databases後のパラメータをライブラリ名に解析する--tables最初のパラメータはライブラリ名の後にテーブル名
  • LOAD DATA構文LOAD DATA文にLOCALキーがない場合、MySQLのサーバ上でファイルを直接読み込み、FILE権限を持つ.LOCALキーが付いている場合は、クライアントでデータファイルをローカルに読み出し、ネットワークを介してMySQLに転送する.LOAD DATA文は、同様にbinlogに記録するが、内部のメカニズムにすぎない.