pagetop

>このブログのトップ

MySQL

2006-07-03

MySQLについての個人的メモ
■よく使うコマンド
C:\>mysql -u root -p ログイン。
**** パスワード設定してなければEnter。
show databases; データベース一覧を見る。
show tables from test_db; テーブル一覧を見る。
use test_db; データベースを掴む。
show tables; 掴むとfrom以下を省略できる。。
show columns from list_t; テーブルの定義を見る。
desc list_t; テーブルの定義を見る。上と同じ。
select * from list_t; レコードを全部見てみる。
select * from list_t where coach_id=14; 特定のレコードを見る。
update list_t set coach_serial=1234567 特定のレコードを更新する。
where coach_id=14;
delete from list_t where id=4; レコードの削除。
create database test2_db; データベース作成。
drop database test_db; データベース削除。
ALTER TABLE list_t ADD test_c INT(11) カラムの追加。
AFTER test2_c;
ALTER TABLE list_t CHANGE test_c test_cc INT; カラム名の変更。
ALTER TABLE m_inventory MODIFY arrival_date カラム定義の変更。
DATE NOT NULL DEFAULT 0;
ALTER TABLE m_order_header DROP serial_pair; カラムの削除。
exit; 終了
C:\>net stop mysql MySQLサービス終了
C:\>net start mysql MySQLサービス開始
テーブル追加
CREATE TABLE x_xxxx_xxxx (serial INT(11) NOT NULL DEFAULT 0, upd_date DATE NOT NULL DEFAULT 0, status INT(1) NOT NULL DEFAULT 0, stock INT(11) NOT NULL DEFAULT 0, arrival_date DATE NOT NULL DEFAULT 0, before_status INT(1) NOT NULL DEFAULT 0, before_stock INT(11) NOT NULL DEFAULT 0, before_arrival_date DATE NOT NULL DEFAULT 0, before_lastup_date DATE NOT NULL DEFAULT 0);


■DB構築(削除→作成→復旧)
プロンプト
mysqldump -u root -p ec > "test508.dump"
MySQL
drop database test;
create database test;
プロンプト
mysql -u root -p ec < "test511.dump"


■リード例
select * from $B where name like '%$name%' and del_flg='active'
order by disp_order,serial"
like あいまい検索 %%ではさむと部分検索になる。
and 条件追加。
order by ソートのキー。複数指定可能。後ろにDESCをつけると降順。


■my.conf
上コマンドライン用のツーツの設定
下PerlやPHPからアクセスするときに必要なので追加して下さい。
[mysql]
default-character-set=sjis

[mysqld]
default-character-set=sjis
old-passwords

(2006.1.11 書き忘れててもブラウザ(Perl)から見れた(^-^;)


■ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)
ある日突然繋がらなくなりました。
_| ̄|○
my.iniを旧に戻しても繋がりませんでした。
my.iniを旧に戻してPCを再起動したら繋がりました。
このあとmy.iniを元に戻して、見たら見えました。PC再起動はしていません。
b

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=sjis
ここだけshisにして他のdefault-character-setを全てeucにしたら繋がるし化けません


■データベースの保存復元のLinux→Windowsで日本語が文字化け
いろいろ試したけどutf8で半分だけ見える。(-_-;
linuxでダンプとると強制的にutf8になる模様。バージョンによっては以下の対応で直
ることがあるらしいが、今の環境ではダメでした。binalyが指定できない。

問題になったのは、2の部分で文字化けに悩まされてました。
結果的には、mysqldumpの文字コードの問題(内部で強制的にutf-8に変換してしまう)のためで、
my.cnfの[mysqldump]のdefault-character-setをbinaryにしたら解決しました。
/etc/my.cnf に下記行を追加
[mysqldump]
default-character-set=binary
ちなみにcharacter-set = ujis等に指定しても文字化けするのでbinary以外はだめみたいです。
あとは、Linux上バックアップ
$ mysqldump -u root -p[[パスワード]] [[DB名]] > backup.sql
Windows上でデータベースを作成してからリストア
mysql > create database [[データベース名]]
$ mysql -u root -p[[パスワード]] [[DB名]] < backup.sql


■データベースの保存と復元
Windowsのコマンドプロンプトから。
保存
C:\>mysqldump -u root -p test_db > "test_db.dump"
復元
C:\>mysql -u root -p test_db < "c:\test_db.dump"
違うMySQLへの復元するときはあらかじめ受け皿を作っておく。
C:\mysql -u root -p
mysql> create database test_db;
mysql> exit;
削除
また、既存のDBの中にテーブルを復旧させる場合は、同じ名前のテーブルがすでにその
DBにあると復旧は行われませんので、そのテーブルを削除しておきます。
mysql> drop database test_db;

Posted by TOMOSUMA 09:43:41 │Comments(1)TrackBack(1)

http://www.pwblog.com/user/TOMOSUMA/TOMOSUMA/cwtb.cgi/28121

MySQLでEUCのダンプファイルをWindowsに取り込む【ウェブ-HACKS 「とりあえずやってみよう!」ブログ】at 2008-01-09 00:34:17

Linux環境でダンプしたMySQLのファイルをWindows環境に取り込む方法...

Posted by ゴウユウ at 2006-08-28 17:52:13

すげーべんりw
ありがとう!

名前
メール
URL
コメント

▲ページの先頭へ