MySQL運用手順

データベースへの接続

% /opt/mysql/mysql/bin/mysql -uユーザ名 -pパスワード -hホスト名 -Pポート番号 データベース名
% /opt/mysql/mysql/bin/mysql -uユーザ名 -pパスワード -Sソケットファイル名 データベース名

パラメータの確認

SHOW VARIABLES;
SHOW VARIABLES LIKE 'log%';

パラメータの設定

SET パラメータ名 = 値;
(ex. SET global log_bin_trust_function_creators = 1;)

データベースの作成

CREATE DATABASE データベース名 [CHARACTER SET 文字セット];
(ex. create database testdb;)

データベースの確認

SHOW DATABASES;

使用するデータベースの選択

USE データベース名;

ユーザの作成

GRANT ALL PRIVILEGES ON データベース名.権限名 TO ユーザ名@ホスト名 IDENTIFIED BY 'パスワード';

ユーザの確認(グローバル権限)

SELECT * from user;

ユーザの確認(データベース権限)

SELECT * from db;

ユーザの削除

DROP USER ユーザ名@ホスト名

テーブルの作成

CREATE TABLE テーブル名(行名 行型,…)ENGINE=エンジン名;

テーブルの確認

SHOW TABLES;

テーブル定義の確認

SHOW CREATE TABLE テーブル名;

テーブルの削除

DROP TABLE テーブル名;

プロシージャの作成

CREATE PROCEDURE プロシージャ名(引数名 引数型) 処理;

プロシージャの削除

DROP PROCEDURE プロシージャ名;

ファンクションの作成

CREATE FUNCTION ファンクション名(引数名 引数型) RETURNS 戻値型 RETURN 戻値;
(ex. CREATE FUNCTION test_func01(n int) RETURNS int RETURN n*100;)
注意:log_bin_trust_function_creators=0の場合(デフォルト)
   SUPER権限と、DETERMINISTIC/NO SQL/READS SQL DATAを指定する必要がある
   →log_bin_trust_function_creators=1にすればOK
補足:DETERMINISTIC:同じ引数に対して同じ値を返すこと
   NO SQL:SQLが一切含まれていないこと
   READS SQL DATA:SELECTなど読み取り用のSQLしか含まれていないこと

ファンクションの削除

DROP FUNCTION ファンクション名;

InnoDBの状況確認

SHOW INNODB STATUS;
mysql -u{user} -p{pass} -h{hostname} -P{port} --execute="SHOW INNODB STATUS\G" mysql

http://www.mysqlperformanceblog.com/2006/07/17/show-innodb-status-walk-through/
http://dev.mysql.com/doc/refman/5.1/ja/innodb-monitor.html

InnoDBが内部で保持している統計情報やステータスを表示。
統計情報は1分ごと、またはコマンドを実行するたびにクリアされる。
出力の先頭を見ると何秒間の統計なのかが分かる。
SEMAPHORES:ロック情報
LATEST DETECTED DEADLOCK:デッドロック情報。完全な詳細は表示しないが原因の推定が可能。
TRANSACTIONS:実行中のトランザクション情報。
FILE I/O:I/O状況。
LOG:InnoDBログ情報。チェックポイントなど。
BUFFER POOL AND MEMORY:バッファプール使用状況
ROW OPERATIONS:行挿入、更新、削除、読み込みなどの統計情報が得られる。

グローバルステータス変数の確認

SHOW GLOBAL STATUS;
http://dev.mysql.com/doc/refman/5.1/ja/server-status-variables.html

プロセスの一覧表示

SHOW PROCESSLIST;

プロセスの強制停止

% mysqladmin kill プロセスID -u root -p

クエリが失敗した時のエラーコードを表示

SHOW WARNINGS;

rootのパスワードを忘れた場合

my.cnfにskip-grant-tablesをつけて再起動