プロフィール

pikab1

Author:pikab1
ただのチキンプログラマです。よろしく。


個人で作ったアプリ

AkiyoshiFan AkiyoshiFan ハンター文字 まとめDL

初/中級開発者におすすめ


カテゴリ


Twitter


月別アーカイブ


最新トラックバック


最新コメント


検索フォーム

ブロとも申請フォーム

QRコード

QR

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


MySQLのテーブルをCSV出力

コマンド
SELECT * FROM テーブル名 INTO OUTFILE "MySQL起動ユーザが許可されているディレクトリ" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';


SELECT * FROM ScoreList INTO OUTFILE "/usr/tmp/dump.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

注意点としては、MySQLを起動しているユーザが許可されているディレクトリにしか出力できない事です。
許可されていないディレクトリを指定した場合は (Errcode: 13)が発生します。


なんのユーザで起動しているかは普通に下記で見てやりましょう。
ps -ef | grep mysqld

以上。

スポンサーサイト


winのMySQLからlinuxのMySQLへリストアする時の注意

win環境では、テーブル名などの大文字小文字が区別されないので、
dumpコマンドでwinからダンプすると、テーブル名が全て小文字で出力されてしまいます。(以下参考画像)
小文字のテーブル画像

ちなみに、変数名はちゃんと大文字小文字区別して出力されます。(以下参考画像)
大文字小文字区別された変数名

そこで、このままLinuxのDBにリストアすると、もちろん小文字のまま挿入されるわけで、
WEBアプリで大文字小文字を区別して実装していた場合に不整合でエラーになってしまいます。
もちろんLinux→winは問題なし。

そこで、解決法。

① ダンプファイルをテキストエディタ等で開いて、直接テーブル名を修正する。
② Linux側のMySQLの設定で、大文字小文字の区別を無くす(win環境と同じにする)
③ Win環境のMySQLの設定を、大文字小文字の区別をするようにし、ダンプ時に最初から区別されたデータを出力するようにする。


ちなみに、③は未検証。というか、できるかどうかも不明w
出来たらいいなーという話です。さらっとググりましたが載っていなかったので。
時間のある時にでも検証してみます。

②は、間違いなく邪道だと思います。この方法で解決している記事もありますが、
LinuxのMySQLではデフォルトが「区別する」設定なので、WEBアプリを別サーバに移設した際、
そのサーバのMySQLが「区別する」の設定のままだった場合に不整合が起きてしまいます。
設定方法は以下です。
my.confの設定例


しょうがないので、今回は①、手作業で変更しました・・・。
テーブル数が10個前後だったのでよかったですが、大量のテーブル数だったら鬼大変ですね。はは。

以上。

MySQL ログインユーザ追加と確認

MySQL ログインユーザ追加と確認

滅多に使わないからすぐ忘れる・・・。めもめも。

まぁ基本これを覚えておけば問題なし。

GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO ユーザ名@許可するIP IDENTIFIED BY 'パスワード';

確認
SELECT Host, User, Password FROM mysql.user;

 | ホーム |  » page top


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。