良く利用するMySQLコマンドのまとめです。
【環境】MySQL5.5
ログイン | ①コマンドプロンプトで以下を入力
mysql -u root -p ②次にパスワードを聞かれます、未設定の場合は何も入力せずに[Enter]キーを押します。 |
---|---|
ユーザの確認 | SELECT Host,User,Password FROM mysql.user;
ユーザ情報はデータベースmysqlのuserテーブルに格納されています。 |
ユーザ作成 | INSERT INTO mysql.user SET user='ユーザ名', password=password('パスワード'), host='ホスト名';
MySQLのユーザは、ホスト名とペアで認識されます。 ホスト名"localhost"は一般にネットワークで使用される"localhost"の意味ではなく、UNIXソケットで接続するという意味です。 したがって、'ユーザ名'@'サーバのホスト名 or IPアドレス'となります ※ホスト名を省略した場合、localhostを除く全てからのアクセスが許可されます。 省略されたホスト名を指定する場合は 'ユーザ名'@'%' と指定。 |
スーパーユーザを作成 | 以下の構文でどのホストからもアクセスできる完全なスーパーユーザを作成できるようになります。
注意したいのは、他ホストからのアクセス許可は勿論の事、localhost のアクセス許可も与えてあげなければなりません。with grant optionを付け加えると、他のユーザの権限を書き換えることができるようになりますので管理者ユーザを作成するときに用います。 mysql> GRANT ALL PRIVILEGES ON *.* TO 'ユーザ名'@'localhost' IDENTIFIED BY 'パスワード' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO '上記と同じユーザ名'@'%' IDENTIFIED BY '上記と同じパスワード' WITH GRANT OPTION; コマンド完了時に以下のコマンドで、mysqlの権限テーブルから権限の再読み込みを行います。 FLUSH PRIVILEGES; |
ユーザのパスワードを設定・更新 | MySQLのユーザーにパスワードを再設定する場合は、ログイン後に以下のコマンドを実行します。
mysql>UPDATE mysql.user SET password=PASSWORD('新しいパスワード') WHERE user='ユーザ名'; |
ユーザに権限を設定 | 以下を実行することで既存のユーザにDBとTableへの権限を付与できます。
mysql>GRANT ALL ON DB名.TABLE名 TO 'ユーザ名'@'ホスト名'; 以下のコマンドで、mysqlの権限テーブルから権限の再読み込みを行います。 FLUSH PRIVILEGES; ※存在しないユーザに権限付与した場合、同時にユーザも作成されます。 今回はALL権限を付与していますが、もっと詳細な設定をすることも出来ます。 ----------- 設定する事が出来る権限リスト ----------- [ALL] 全権限 [CREATE] データベース・テーブルの作成権限 [CREATE USER] ユーザの作成権限 [DROP] データベース・テーブルの削除権限 [SELECT] テーブルの参照権限 [INSERT] テーブルのレコード挿入権限 [UPDATE] テーブルのレコード更新権限 [DELETE] テーブルのレコード削除権限 [EXECUTE] ファンクション・ストアドプロシージャの実行権限 [SHOW DATABASES] データベースの一覧取得権限 [SHUTDOWN] MySQLのシャットダウン実行権限 |
ユーザの権限を確認 | 現在ログイン中のユーザ権限を確認します。
SHOW GRANTS; ユーザを指定する場合。 SHOW GRANTS FOR 'ユーザ名'@'ホスト名'; |
ユーザの権限を削除 | 対象ユーザのデータベースに対する権限を削除します。
mysql> REVOKE ALL ON DB名.TABLE名 FROM 'ユーザ名'@'ホスト名'; ※全てのDB及びホスト名の無いユーザの場合は以下のようにします。 mysql> REVOKE ALL ON *.* FROM 'ユーザ名'@'%'; 以下のコマンドで、mysqlの権限テーブルから権限の再読み込みを行います。 FLUSH PRIVILEGES; |
ユーザの削除 | DELETE FROM mysql.user WHERE user='ユーザ名' AND host='ホスト名';
|
匿名ユーザを削除 | ユーザ名が特定できない匿名ユーザを削除するには以下のコマンドを実行します。
DELETE FROM mysql.user WHERE user=''; |
MySQLの文字コード確認 | MySQLのコマンドラインで以下を実行
show variables like 'character_set%'; ※MySQLのデフォルト文字コードはLatin1になっていると思います。 他の文字コードを使用する場合は~/mysql/bin/my.iniで設定変更する必要があります。 ↓utf8に変更する場合は赤字のように変更します。 [client] default-character-set = utf8 [mysqld] character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 |
使用可能文字コードの確認 | 使える文字コードは、SQLコマンドラインで↓を実行すると解ります。
SHOW CHARACTER SET; |
データベースの作成 | create database データベース名 character set 文字コード;
DB名を test 文字コードをutf-8にする場合は↓のようにする。 【例】 CREATE DATABASE test CHARACTER SET utf8; ※MySQL5.5での確認情報、DB名は大文字で作成しても自動で小文字で作成されるようです。 またDB名に「-」(ハイフン)を利用する場合は、「`」(バッククォート)で文字列を囲む必要があります。(バッククォートの出し方はキーボードの種類などにもよりますが、Shiftキー+@キーで入力する事が出来ます。) CREATE DATABASE `db-test` CHARACTER SET utf8; |
データベースの文字コード確認 | データベースの文字コードの確認方法。
SHOW CREATE DATABASE データベース名; |
データベースの文字コード変更 | 既にデータベースを作成済みで文字コードがLatin1のまま。
という時は↓でデータベースの文字コードを変更できます。 ALTER DATABASE データベース名 DEFAULT CHARACTER SET 文字コード; |
データベースの確認 | SHOW DATABASES; |
データベースの削除 | DROP DATABASE データベース名; |
対象データベースの切り替え | CONNECT データベース名; |
テーブルの作成 | CREATE TABLE テーブル名(カラム名 カラムの型情報,カラム名 カラムの型情報,・・・・・,PRIMARY KEY (カラム名))CHARACTER SET utf8 COLLATE utf8_general_ci;
テーブル名にハイフンを含む場合はバッククォートでテーブル名を囲みます 【例】 CREATE TABLE `tbl-test`(user_id int not null,name varchar(255),PRIMARY KEY (user_id))CHARACTER SET utf8 COLLATE utf8_general_ci; |
テーブル一覧の表示 | SHOW tables; |
テーブルの定義を表示 | ※対象DBに接続していること。
DESC テーブル名; SHOW COLUMNS FROM テーブル名; |
テーブルの文字コード確認 | show table status from データベース名; |
テーブルの文字コード変更 | ALTER TABLE テーブル名 CHARACTER SET 変更後文字コード;
※テーブルに格納されているデータをどのような文字コードとして扱うかの変更であり、格納済データの文字コードが変換されるわけではありません。 |
テーブル内データの文字コード変換 | ALTER TABLE テーブル名 CONVERT TO CHARACTER SET 変更後文字コード;
※utf8からutf8mb4の場合は必要ありません。 |
テーブルの削除 | DROP TABLE テーブル名;
DB名を指定して削除する場合 DROP TABLE db_name.tbl_recruit; DB名にハイフンを含む場合はバッククォートでDB名を囲みます。 DROP TABLE `db-name`.tbl_recruit; |
作成済みテーブルにカラムを追加 | ALTER TABLE テーブル名 ADD カラム名 カラムの型情報;
この場合、最後尾にカラムが追加されます。 カラムの挿入位置を指定する事もできます。 例えば、tbl_test テーブルの code というカラムの後に name というカラムをvarchar(255)で追加したい場合は下記のようにします。 【例】 ALTER TABLE tbl_test ADD name varchar(255) AFTER code; |
テーブル名の変更 | ALTER TABLE テーブル名 RENAME AS 新テーブル名; |
MySQLの終了 | QUIT; |