Postgresのバックアップとリストア
su 権限でやると良いだ。
DBのバックアップ
/usr/local/pgsql/bin/pg_dump -h ホスト名 -U ユーザ名 -d DB名 > ファイル名
特定のテーブルのバックアップを取る場合には、
pg_dump -d データベース名 -t テーブル名 > ファイル名
といったように -tでテーブル名を指定
テーブルのリストアは
psql データベース名 < ファイル名
メモ書きのため、あしからず。
Postgresのバックアップとリストア
su 権限でやると良いだ。
DBのバックアップ
/usr/local/pgsql/bin/pg_dump -h ホスト名 -U ユーザ名 -d DB名 > ファイル名
特定のテーブルのバックアップを取る場合には、
pg_dump -d データベース名 -t テーブル名 > ファイル名
といったように -tでテーブル名を指定
テーブルのリストアは
psql データベース名 < ファイル名
メモ書きのため、あしからず。
【備忘録】MySQLパスワードハッシュの長さ
JDBCを使い、MySQLにパスワードをハッシュ値で保存しようとした際、
下記のエラーが起きました。
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncated for column ‘カラム名’ at row 1
上記のエラーは文字列が大きいため切り捨てを行った際に出る警告みたいです。
ハッシュ値を入れるカラムは20バイト長にしていたのですが、
それが原因だったようです。
というのも、MySQL 4.1 より前は、
PASSWORD() 関数によって計算されるパスワードハッシュは 16 バイト長でしたが、
MySQL 4.1 から、PASSWORD() 関数が、
41 バイトのハッシュ値を生成するようになったためでした。
ということで、該当のカラムの長さを
41バイト長より長いもので設定しなおしたら解決できました。
下記サイトを参考にさせて頂きましたm(__)m
4.3.11. MySQL 4.1 のパスワードハッシュ
■テーブルを作った時のSQL文を保存しておきたい場合
Windowsコマンドプロンプト上でMySQL対話モード中とします。
mysql>USE 【データベース名】;
で、該当のデータベースを選択します。
mysql>SHOW CREATE TABLE 【テーブル名】;
で、CREATE TABLE~のSQL文が表示されるので、
それをコピーでもして「テーブル名.sql」なんかで保存しておけばいいかもです。
■SQL文を保存したファイルからSQLを流し込む場合
mysql>\. SQL文を保存したファイルのパス
¥マーク、ドット、スペースの後にファイルのパス(ファイル名を含み)
行の最後にはセミコロンを入力しない
■MySQLユーザ登録(通常の操作のみ)
以下、mysql対話モードでlocalhostにユーザ登録をする場合の例です
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ←検索、挿入、更新、削除の権限を与えます
-> ON データベース名.* ←データベースの指定
-> TO ユーザ名@localhost
-> IDENTIFIED BY ‘パスワード’; ←IDENTIFIED BYで指定したパスワードは暗号化されます
mysql> FLUSH PRIVILEGES; ←ユーザテーブルのリフレッシュ
実際に登録されているか確認
mysql> select * from mysql.user;
参照サイト
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html#doc1_id469
DBへのGUI接続ツールとして、
「Common SQL Envirnment」をよく利用しています。
ODBC接続も可能でお勧めです。
「Common SQL Envirnment」(CSE)
http://www.hi-ho.ne.jp/tsumiki/
ちなみに、WindowsからCSEでODBC接続した時に、
DBはutf8で文字化けしちゃったんですが、以下の設定で解決しますた。
1.Windows システムにインストールされているODBCドライバを表示
Windows XP では、[スタート]-[コントロール パネル]-[管理ツール]-[データ ソース (ODBC)] を選択
2.追加ボタンからDBのドライバや接続先を設定
3.ローカルのmy.cnfファイルで以下修正
[client]
default-character-set =SJIS
4.CSEでODBC接続
※環境によってこれだけでは解決しない場合もあるかと思います。
自分の備忘録として書いています。