▼DB一覧の表示
mysqlshow
▼DB内テーブルの表示
mysqlshow [dbname]
▼パスワードの変更
$ mysql -u root mysql
mysql> update user set Password=password('hissql') where user='root';
もしくは
$ mysqladmin -u root password [newpassword]
---MySQLから---
▼DB一覧の表示
show databases;
▼テーブルの表示
show tables from [dbname];
▼カラムの表示
show fields from [tablename] from [dbname];
---基本SQL文---
▼検索
select * from [tablename];
ex) mysql> select * from test_table;
▼挿入
insert into [tablename] ([Field],[Field],......) values (*,*,....);
ex) mysql> insert into test_table (hoge,moe) values (1,'aa');
▼更新
update [tablename] set [Field]='value' where [Field] = 'value';
ex) mysql> update test_table set hoge=2 where moe='aa';
▼削除
delete from [tablename] where....;
ex) mysql> delete from shintaro where hoge=1;
▼テーブル作成
create table [tablename] (field kata,field kata);
ex) mysql> create table test_table (num int(2),moji char(2));
▼行の数を知る
mysql> select count(*) from [tablename];
---定義SQL文---
▼テーブル名変更
alter table OLDTBLNAME rename to NEWTBLNAME;
▼カラム追加
alter table TBLNAME add column (COLNAME DATATYPE);
▼カラム削除
alter table TBLNAME drop column COLNAME;
▼インデックス追加
alter table TBLNAME add index IDXNAME (IDXCOLUMN);
---権限SQL文---
▼権限付与
mysql> grant all privileges on *.* to mysql@localhost identified by 'yoursql' with grant option;
mysql> grant all privileges on *.* to mysql@"%" identified by 'yoursql' with grant option;
▼完全なMYSQLスーパーユーザーを作る
mysql> GRANT ALL PRIVILEGES ON *.* TO [username]@localhost IDENTIFIED BY '[password]' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO [username]@"%" IDENTIFIED BY '[password]' WITH GRANT OPTION;
---その他---
▼DBの選択
mysql>use DBNAME;
▼DB作成
mysql>create database DBNAME;
▼DB削除
mysql>drop database DBNAME;
▼外部SQLファイルの実行
$ mysql DATABASE_NAME < temp.sql
(これでtemp.sqlに格納されているSQL文が実行される。)
▼ファイルへのエクスポート(実行結果を外部ファイルへ出力)
$ mysql test > out.txt
mysql> select * from test_table;
mysql> quit
(out.txtにselect文の実行結果が返ってくる。)
▼mysqldump(dumpファイル出力)
/usr/local/mysql/bin/mysqldump --all-databases > /path/to/backup_dir/dump.dat -u root --password=[password]
▼ファイルからインポート
mysql> load data local infile "hoge.csv" into table TABLE_NAME;
(※標準はタブ区切り。もしカンマ区切りのCSVファイルをインポートしたい場合は、最後に「fields terminated by ','」と付け加える。)
▼ファイルからインポート(その2)
最新のMySQLではload data....の文は使えなくなった様子なので、mysqlimportを使ったインポートをします。
mysqlimport --local --fields-terminated-by=',' DBNAME /FULL/PATH/TABLENAME.txt
--localがないとエラーになってしまうので必ずつけましょう。
▼ファイルからインポート(その3)
mysql -u root --password=[password] TARGET_DB < batch_sql.txt
▼SQLログの記録
mysqld_safe --log &
で起動すれば実行したSQLのログを記録してくれる。ログの出力場所は/usr/local/var。(たぶん環境によって異なります)
ウェブアプリのデバッグなどに便利です。
▼一括置換
update TABLE set column = replace(column, "置換前ワード", "置換後ワード");
▼今日の日付と月、前の月をまとめてゲット
select
DATE_FORMAT(current_date, '%Y/%m/%d') as today,
DATE_FORMAT(current_date, '%Y/%m') as this_month,
DATE_FORMAT(DATE_ADD(current_date, INTERVAL -1 MONTH), '%Y/%m') as before_month;
---チューニング関連---
▼ステータスの確認
# mysqladmin status
# mysqladmin variables
▼データファイルの検査
# myisamchk /usr/local/var/DBNAME/TBLNAME.MYI
※「・・・is usable but should be fixed」と出たら修復の必要がある。
# myisamchk -d /usr/local/var/DBNAME/TBLNAME.MYI
▼データファイルの修復
#myisamchk -r /usr/local/var/DBNAME/TBLNAME.MYI
#myisamchk -o /usr/local/var/DBNAME/TBLNAME.MYI
ヘルプによると、-rはrecoverで、-oはold recoverらしい。念のため両方やっておいたほうがよさそう。
0 件のコメント:
コメントを投稿