以下の内容はhttps://iww.hateblo.jp/entry/20251002/mysqldumpより取得しました。


MariaDBで、FILE権限なしでもmysqldumpっぽいことをする

mysqldumpはFILE権限が必要だしリモートだと使えなかったりするので、
mysqldumpのような動きをするスクリプトを作る。

カレントディレクトリに *.sql と *.txt を出力する
*.txt はヘッダ部分無しのTSV形式ファイルである


mysqlexport.sh

#!/bin/bash

USERID=viewer
PASSWD=ppaasssswwdd
DBNAME=unko
DBHOST=192.168.0.80

OPT="-u$USERID -p$PASSWD -h$DBHOST $DBNAME"

# テーブル一覧取得
TABLELIST=$(mysql $OPT -Nse "
  SELECT table_name FROM information_schema.tables
  WHERE table_schema='$DBNAME' AND table_type = 'BASE TABLE'
  ")

# スキーマとデータを取得
for TABLE in $TABLELIST; do
  echo "dump $TABLE"
  mysqldump $OPT --single-transaction --skip-lock-tables --no-data $TABLE > "$TABLE.sql"
  mysql $OPT --binary-mode --default-character-set=utf8 -NBe "SELECT * FROM $TABLE" > "$TABLE.txt"
done


データ形式はmysqldumpのとだいたい同じなので、 mysqlimport で普通にインポートできる
NULLが「NULLというテキスト」になっちゃうけど、今どきは NULLを許さないのでセーフ

# スキーマの取り込み
cat *.sql | mysql -uuser -ppass -h192.168.0.90 unko
# データの取り込み
mysqlimport -uuser -ppass -h192.168.0.90 -D -r --local /data/work/*.txt

mysqlimportでのファイル指定はフルパスじゃないとダメ




以上の内容はhttps://iww.hateblo.jp/entry/20251002/mysqldumpより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14