mysql メモ


mysql システム管理
サーバの起動 
#/etc/init.d/mysql start
または
mysqld_safe --user=mysql &
または
mysqld &
windowsはサービスで起動

サーバのシャットダウン 
# /etc/init.d/mysql stop
または
mysqladmin -u root shutdown 
windowsはサービスで停止

データベースの表示
mysqlshow

mysql> show databases;

データベース作成
$ mysqladmin -u root create DB名
または
mysql> CREATE DATABASE DB名;


データベースへ接続
# mysql [オプション] [データベース] 
shell> mysql -h ホスト名 -u ユーザ名 -pパスワード DB名

rootユーザのパスワード設定
# mysqladmin -u root password 'rootユーザのパスワード'

パスワード変更
mysql> SET PASSWORD FOR ユーザ名@localhost=PASSWORD('ユーザのパスワード');

権限付与(ユーザが存在しなければユーザ作成もする)
mysql> grant delete,insert,references,select,update on DB名.* to ユーザー名
 identified by 'パスワード';

権限取り消し
REVOKE 権限 ON テーブル名 FROM ユーザ名;
-------------------------------------------------------------------------
mysqldump

mysqldump -u root -p DB名 > ./テーブル作成後インサート.sql

テーブル定義のみ
mysqldump -u root -p DB名 --no-data > ./テーブル作成.sql

インサート文のみ
mysqldump -u root -p DB名 --no-create-info > ./insert.sql
--------------------------------------------------------------------------
統計情報
SHOW [GLOBAL | SESSION] STATUS
 絞込み表示 LIKE
 SHOW STATUS LIKE 'Up%';
 
統計情報の設定
set GLOBAL 設定名=値;

サーバの変数を確認 
mysql> SHOW VARIABLES;

文字コードをEUCに設定 my.cnf に
default-character-set=ujis

エラーログ
データディレクトリ中の「ホスト名.err」ファイルを参照

mysqlコマンドの基本操作
DB名 testに接続
# mysql test
Welcome to the MySQL monitor. Commands end with ; or \g.
Type 'help;' or '\h' for help. Type '\c' to clear the buffer
mysql> 

mysqlの終了
mysql > exit   または
mysql > \q

mysqlのヘルプ
mysql > help; 

バージョン表示
mysql> select version();

入力のキャンセル \c 
mysql> SELECT
    -> USER()
    -> \c
mysql>

DBへの移動
mysql> use DB名
Database changed

テーブル名表示
mysql> show tables;

テーブル構造表示
mysql> DESCRIBE テーブル名
または
mysql> show fields from テーブル名;

データのロード
# mysql --local-infile=1 -u root DB名
mysql> load data local infile "./テキストファイル名.txt" into table テーブル名;
Query OK

テキストファイル名の内容がテーブルに読み込まれる. 
テキストファイルはタブ区切りでテーブル構造(列数)と同じ事。        


バッチ処理
shell$ mysql < batch-file

mysqlプロンプトからバッチファイル呼び出し
mysql> source batch-file;


実行結果をファイルに出力
mysql データベース名 > ファイル名
SQL文を入力

実行中のプロセスを確認
mysql> SHOW PROCESSLIST;

ユーザ変数
SELECT @変数名:=MIN(列名) FROM テーブル名;
SELECT * FROM テーブル名 WHERE 列名=@変数名;


例えば、100番目から20個だけ表示させたい場合
mysql> select * from XXXテーブル limit 99,20; 

テーブル作成 例
mysql> create table test (
    -> id int,
    -> text text );
Query OK, 0 rows affected (0.10 sec)

mysql> desc test
    -> ;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| text  | text    | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)


cygwin環境のPHPでMySQL

[一つ前に戻る] TOP PAGE
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送