ユーザーを指定してのログイン
パスワードの入力を求められるので入力するとログインできる。
-uオプションでユーザー指定、-pオプションでパスワード入力を
求められる様になる。
mysql -u ユーザー名 -p
接続するDBも一緒に指定してログインする時は以下の様に、
特にオプションを付けずにDB名を付与して実行する。
mysql -u ユーザー名 -p データベース名
作成済みのユーザーの確認
存在するユーザーについての情報を確認する時は
mysqlデータベースのuser表を確認する。
SELECT user,host FROM mysql.user;
ユーザーの作成
新しくユーザーを作成する。
CREATE USER 'ユーザー名'@'ホスト名' IDENTIFIED BY 'パスワード';
※MySQLのリファレンスに拠るとINSERT文でもユーザーの追加をできる模様だが、
できればOracleDBと互換性のある形で使用したいので今のところ除外。
特権ユーザーを作成する場合は以下。
WITH GRANT OPTIONを付け加えると、他のユーザの権限を書き換えることが
可能になる様なので、rootとは別に管理者ユーザーを作成する時に使えると思われ。
GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ホスト名' IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
FLUSH PRIVILEGES;
MySQL8系だと上記の特権ユーザーの作成はできないっぽい
MySQL8系の場合は以下で作成する。
CREATE USER 'ユーザー名'@'ホスト名' identified by 'パスワード';
GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ホスト名' (WITH GRANT OPTION);
FLUSH PRIVILEGES;
※GRANT構文を実行した後は「FLUSH PRIVILEGES;」を実行して権限を反映させる必要有。
ユーザーのパスワード変更
接続したいユーザーのパスワードを忘れた時など
パスワードを再設定する場合は以下コマンドでパスワードを変更する。
ALTER USER 'ユーザー名'@'ホスト名' identified by 'パスワード';
SET PASSWORD FOR ユーザー名@ホスト=PASSWORD('パスワード');
ユーザーの削除
ユーザーを削除するコマンド。
DROP USER ユーザー名@ホスト名;
DBの作成
DBを作成する際のコマンド。
[]内は省略可能。
省略した場合はmy.cnfで設定しているデフォルトの値を使用する。
CREATE DATABASE データベース名
[CHARACTER SET 文字コード]
[COLLATE 照合順序];
DBの一覧を確認
現在作成してあるDBの一覧を確認する。
注意は「database」ではなく「database”s”」で複数系である点。
間違えても特に問題は無いけど・・・。
SHOW DATABASES;
DBの削除
DBを削除するコマンド。
DROP DATABASE データベース名;
DBへの接続
ログイン時に接続するDBを指定していない場合、
以下コマンドでDBに接続する。
尚、USEでもDBの切り替えは可能な模様…
USE データベース名;
接続DBの切替
CONNECT データベース名;
接続しているDBの確認
SELECT database();
CREATE DATABASE文の表示
指定したテーブル名のCreate Database文を表示。
文字コードはこれで確認ができる。
SHOW CREATE DATABASE データベース名;
参考元:https://qiita.com/IysKG213/items/4a26bc419eea8f642b44