MySQLの操作


MySQLのコマンドについて解説します。
ここでは良く使うコマンドしか解説していませんが、これよりもっと詳しい情報が欲しい場合には本家のMySQL 5.1 リファレンスマニュアル(日本語)をご覧ください。

MySQLのインストールについてはMySQLを、SQLの操作についてはSQLリファレンスを参照してください。

基本的な操作

$ mysqladmin ping
MySQLが起動しているか確認する

$ mysql -uhoge -p userdb
ユーザー hoge で userdbに接続する

mysql > \q
MySQLから切断する 

mysql > \h
mysql >
           \help
mysql > ?
MySQLのヘルプを表示する

mysql > \s
接続情報を表示する

mysql > USE otherdb;
データベースを otherdb に切り替える

$ mysqladmin extended-status -uユーザ名 -p
mysql> SHOW STATUS;
サーバのステータスを確認する

$ mysqladmin variables -uユーザ名 -p
mysql> SHOW VARIABLES;
サーバ変数を確認する

ユーザー操作

mysql> GRANT USAGE ON *.* TO hoge@localhost IDENTIFIED BY 'd';
ユーザー hoge をパスワード taco で登録する

mysql> SET PASSWORD = PASSWORD('taco');
自分のパスワードを taco に変更する

mysql> SET PASSWORD FOR hoge@localhost = PASSWORD('taco');
ユーザー hoge をパスワード taco
           に変更する by管理者

mysql> DROP USER hoge;
ユーザー hoge を削除する

権限操作

mysql> SHOW GRANTS FOR hoge@localhost
ユーザー ho
          ge の権限一覧を見る

mysql> GRANT ALL PRIVILEGES ON userdb.* TO hoge@localhost;
ユーザー 
          ho
            ge に userdb の全権限を与える
* の部分は select や update などの他のものに置き換え可

mysql> GRANT SELECT ON userdb.* TO hoge@localhost  IDENTIFIED BY 'taco';
ユーザー 
          ho
            ge に userdb の SELECT権限を与える
SELECT の部分は","で区切り列挙しても可

mysql> GRANT ALL PRIVILEGES ON *.* TO hoge@localhost IDENTIFIED BY 'taco' WITH GRANT OPTION;
ユーザー ho
          ge に mysql の root と同じ権限を与える
WITH GRANT OPTION で GRANT 構文を実行する権限を与える

mysql> FLUSH PRIVILEGES;
データベースの権限テーブルから権限を再読み込みする GRANTやREVOKEを行った後は必ず実行する

データベースの操作

mysql> SHOW DATABASES;
データベースを表示

mysql> CREATE DATABASE userdb;
$ mysqladmin -uroot -p create userdb
データベース userdb を作成

mysql> ALTER DATABASE userdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
userdb の文字コード規定値をUTF8にする

mysql> DROP DATABASE userdb;
$ mysqladmin -uroot -p drop userdb
データベースuserdbを削除

テーブルの操作

mysql> SHOW TABLES;
テーブル一覧を見る

mysql> SHOW TABLE STATUS FROM userdb;
テーブルのステータスを表示する 

mysql> DESCRIBE usertbl ;
テーブルのカラム情報を表示する

mysql> SHOW INDEX FROM usertbl;
usertbl のインデックス情報を表示する

mysql> CREATE TABLE usertbl (id INT, title CHAR(16), dt DATE);
テーブル usertbl を作成する 列は 数値型の id、文字列型16文字の title、日付型の dtを設定

mysql> INSERT INTO usertbl(id,title,dt) VALUES(1,'hogehoge','2007-04-01');
usertbl に値を設定する

mysql> SELECT * FROM usertbl;
usertbl の全データを表示する

mysql> SELECT * FROM usertbl WHERE id='1';
usertbl から id が 1 である行を抽出する

mysql> UPDATE usertbl SET dt='1997-12-31' WHERE id='1';
usertbl の id が 1 である行の dt に 1997-12-31 を設定する

mysql> DELETE FROM usertbl WHERE id='1';
usertbl の id が 1 である行を削除する

mysql> DROP TABLE tblhoge;
usertbl を破棄する

ファイルの入出力

$ mysql [-t -N] userdb < test.sql
test.sql に記述したSQL文を userdb に対して実行する -t : 表形式(区切り線を出力)で結果を表示する -N : カラム名を出力しない

$ mysql userdb > result.txt
select * from usertbl; (入力待ちになるので、SQL文を入力する)
\q
userdb に対してSQL文を実行し、結果を result.txt に出力する

$ mysql [-t -N] userdb < test.sql > result.txt
test.sql に記述したSQL文を userdb に対して実行し、結果を result.txt に出力する

データファイルの操作

$ myisamchk test.MYI
MySQLのデータファイルの整合性をチェックする 

$ myisamchk -e test.MYI
より詳細に整合性をチェックする 

$ myisamchk -r test.MYI
 データファイルを修復する

$ myisamchk -o /データベースのパス/テーブル名
-rオプションでも修復できない場合、-oオプションで修復を試みる

その他

mysql> SHOW CHARACTER SET;
使用可能なキャラクターセットを表示する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


− 4 = 4

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>