Help us understand the problem. What is going on with this article?

MariaDB コマンドまとめ その1

MariaDB使用時にSQLの構文が分からなくなったり、
早くもどの記事に載っていたかを探すのが面倒になりつつある(ストックせいや!)ので、
復習も兼ねて自分用にSQLをまとめていく。

Oracle用のSQLはノートに書き溜めていたけど、どこに何を書いたかとか分からなくなるし、
コピペ出来ないしで面倒だから、そっちもいずれ記事にまとめていきたい・・・。


ユーザーを指定してのログイン

パスワードの入力を求められるので入力するとログインできる。
-uオプションでユーザー指定、-pオプションでパスワード入力を
求められる様になる。

MariaDBにログイン
mysql -u ユーザー名 -p

接続するDBも一緒に指定してログインする時は以下の様に、
特にオプションを付けずにDB名を付与して実行する。

DB指定でMariaDBにログイン
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系の場合は以下で作成する。

特権ユーザーの作成(MySQL8)
CREATE USER 'ユーザー名'@'ホスト名' identified by 'パスワード';
GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ホスト名' (WITH GRANT OPTION);
FLUSH PRIVILEGES;

※GRANT構文を実行した後は「FLUSH PRIVILEGES;」を実行して権限を反映させる必要有。

ユーザーのパスワード変更

接続したいユーザーのパスワードを忘れた時など
パスワードを再設定する場合は以下コマンドでパスワードを変更する。

ユーザーのパスワード変更1
ALTER USER 'ユーザー名'@'ホスト名' identified by 'パスワード';
ユーザーのパスワード変更2
SET PASSWORD FOR ユーザー名@ホスト=PASSWORD('パスワード');

ユーザーの削除

ユーザーを削除するコマンド。

ユーザーの削除
DROP USER ユーザー名@ホスト名;

DBの作成

DBを作成する際のコマンド。
[]内は省略可能。
省略した場合はmy.cnfで設定しているデフォルトの値を使用する。

DBの作成
CREATE DATABASE データベース名 
[CHARACTER SET 文字コード]
[COLLATE 照合順序];

DBの一覧を確認

現在作成してあるDBの一覧を確認する。
注意は「database」ではなく「database"s"」で複数系である点。
間違えても特に問題は無いけど・・・。

DBの一覧
SHOW DATABASES;

DBの削除

DBを削除するコマンド。

DBの削除
DROP DATABASE データベース名;

DBへの接続

ログイン時に接続するDBを指定していない場合、
以下コマンドでDBに接続する。
尚、USEでもDBの切り替えは可能な模様…

DBへの接続
USE データベース名;

接続DBの切替

DBの切替
CONNECT データベース名;

接続しているDBの確認

接続中のDB確認
SELECT database();

CREATE DATABASE文の表示

指定したテーブル名のCreate Database文を表示。
文字コードはこれで確認ができる。

文字コードの確認
SHOW CREATE DATABASE データベース名;

参考

・よく使うMariaDB か MySQLのSQLコマンドメモ
 http://qiita.com/pugiemonn/items/247dccb6dc56e373ba92
・MariaDB はじめてのMariaDB 【第4回 ユーザを作成してみよう】
 http://www.sakc.jp/blog/archives/38222
・MariaDB はじめてのMariaDB 【第5回 DBを作成してみよう】
 http://www.sakc.jp/blog/archives/38550
・MySQL 5.6 リファレンスマニュアル
  6.3.2 ユーザーアカウントの追加
 https://dev.mysql.com/doc/refman/5.6/ja/adding-users.html

IysKG213
基本的には自分の備忘録として使用。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした