no image

データベース操作コマンド(Mysql/MariaDB)

1. MariaDBとは

MariaDBはMySQLのクローンOSSです。公式サイトでは、Wikipedia, WordPress.com , Google等でも利用され、最も人気のあるDBソフトの一つとされています。

2. データベース操作コマンド

ここではMariaDBインストール後に利用する主なコマンドについて記載します。

2-1. データベースコンソールへのログイン

 $ mysql -u [username] -p

2-2. データベース作成

 > CREATE DATABASE [db_name] CHARACTER SET [charset_name] COLLATE  [collation_name];

charecter set及びcollateはオプションの為、省略可能。デフォルトでは以下が設定されます。

項目 説明 デフォルト値
character set 文字コードを指定する utf8
collate DML等でデータ照合する際の照合ルールセット。
文字コード、言語名、照合ルールの組み合わせ
charater setの設定により異なる。
utf8の場合はutf8_general_ci

collate設定の確認

collateのデフォルト値の確認

 > SELECT * FROM information_schema.COLLATIONS where IS_DEFAULT like '%Yes%';

利用collate値の確認

 > SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION FROM information_schema.TABLES;

2-3. ユーザー作成

 > create user '[username]'@'[hostname]' identified by '[password]';

パスワードの設定は8文字以上、64文字以下で、利用できる文字は以下。
(利用できない文字を利用した場合、ログインできないが、create userコマンドとしてはOKとなる為、注意が必要。)

種類 文字列
半角英字
(大文字小文字は区別)
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
半角数字 0123456789
記号 ! # % & ( ) * + , – . / ; < = > ? @ [ ] ^ _ { | } ~

ログインエラー例

パスワードの誤り、もしくは権限がない場合に以下のメッセージが出力される。grant文によるユーザへの権限付与、もしくはパスワードの変更を行う。

ERROR 1045 (28000): Access denied for user '[username]'@'[hostname]' (using password: YES)

2-4. ユーザーへの権限付与

権限付与を含む全ての権限をユーザに付与。
hostnameはIPアドレスでの指定も可能です。

 > grant all privileges on [databasename].* to '[username]'@'[hostname]' with grant option;

権限の一覧については以下に整理されています。

2-5. ユーザーのパスワード変更

hostnameはIPアドレスでの指定も可能です。

 > use mysql;
 > set password for '[username]'@'[hostname]'=password('[password]'); 

パスワードの設定状況の確認は以下のコマンドで実施できます。

select host,user,password from mysql.user;

2-6. ユーザーの削除

 >drop user '[username]'@'[hostname]'; 

3. データベース確認コマンド

3-1. データベースの一覧

 > show databases;

3-2. 選択しているデータベースの確認

 > select database();

3-3. 選択しているデータベース内のテーブル一覧

 > show tables;

3-4. ユーザー名一覧

 > select host,user from user;

3-5. ログイン中のユーザ確認

 > select user();

3-6. テーブルカラムの確認

 > show columns from [databasename].[tablename];

3-7. データベースグローバル設定の確認

サーバのバージョン等の確認

 > status;
--------------
mysql  Ver 14.14 Distrib 5.6.42, for Linux (x86_64) using  EditLine wrapper

Connection id:          8299
Current database:       mysql
Current user:           [email protected]
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.6.42 MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 5 days 23 hours 26 min 48 sec

Threads: 1  Questions: 356052  Slow queries: 6  Opens: 160  Flush tables: 1  Open tables: 106  Queries per second avg: 0.689
--------------

MariaDB パラメータの確認

 > show status;