MariaDBとMySQLは姉妹関係にあるRDBMSになります。どちらもアプリケーションで登録するデータを保存するために必要なソフトウェアです。
違いはMySQLをもとにパフォーマンス改善し、後発として誕生したものがMariaDBです。
MariaDBもしくはMySQLをインストールした後はデータベース(DB)の作成と、作成したDBを操作するためのユーザ作成が必要になります。自身でWebアプリケーションを構築する際やWordPress、DrupalといったCMSをインストール際にDBの構築作業は必要になります。
また、MariaDB(MySQL)はレンタルサーバでよく使われています。
レンタルサーバでは大抵管理メニューから簡単にDBの作成ができるようになっておりますが、仮想環境等を用意し、事前にレンタルサーバでCMSを公開する前に設定方法などを勉強したり、デザインテーマを自身で作成する場合など、管理メニューのようなものが無い状態からDBを構築することのほうがほとんどです。
そのため、管理メニュー等の便利機能に頼らずともデータベースの作成やユーザの作成ができるようにしておいたほうが吉です。
※ MariaDBおよびMySQLのインストールにつきましては、当該記事の末尾に関連記事のリンクがありますので、そちらからご参照ください。なお、Linux環境におけるインストール方法であり、Windows環境へのインストール方法ではありませんので予めご了承ください。
rootユーザのパスワード設定とMariaDB、MySQLの起動方法
MariaDBもMySQLも基本的にコマンドは一緒です。これはMySQLから派生して作られたのがMariaDBだからです。
インストール直後はrootという特権ユーザで起動、ログインします。以下のコマンドで起動可能です。
【MySQLのサービス起動方法】
$ sudo systemctl start mysqld
【MariaDBのサービス起動方法】
$ sudo systemctl start mariadb
【MySQL、MariaDBの起動】
$ mysql
MySQLにログインする前にrootユーザにパスワード設定する場合は以下のコマンドで行います。
【rootユーザのパスワード設定】
$ mysqladmin -u root password input_root_password
※ input_root_passwordの部分に設定するパスワードを入力します。
パスワード設定後のMariaDB、MySQLの起動とログイン方法は使用するコマンドに違いはありませんが、以下のようにユーザ名を指定するためのオプション「-u」の後ろにユーザ名を指定し、その次にパスワード入力を行うためのオプション「-p」を指定します。Enterキーを押下するとパスワード入力を求められますので、設定したパスワードを入力します。rootユーザ以外のユーザでログインする場合も同じです。
【MySQL、MariaDBの起動(ユーザとパスワードの指定有り)】
$ mysql -u root -p
データベースの作成
DBを作成するにはmysqlにログイン後、以下のSQLを入力します。
create database input_database_name;
※ input_database_nameの部分に作成するDB名を入力します。
DBを削除する場合は以下のように入力します。
drop database input_database_name;
ユーザの作成
ユーザを作成する場合は以下のように入力します。
create user 'input_user_name'@'input_host_name' identified by 'input_user_password';
※ input_user_nameの部分にユーザ名、input_host_nameの部分にホスト名(localhostなど)、input_user_passwordの部分にパスワードを入力します。
ユーザを削除する場合は以下のように入力します。
drop user 'input_user_name'@'input_host_name';
ユーザの権限付与
特定ユーザにすべてのDBへのアクセスや操作権限を付与するには以下のように入力します。
grant all on *.* to 'input_user_name'@'input_host_name';
※ input_user_nameの部分にユーザ名、input_host_nameの部分にホスト名(localhostなど)を入力します。
特定のDBへのアクセスや操作権限を付与するには以下のように入力します。
grant all on input_database_name.* to 'input_user_name'@'input_host_name';
※ input_database_nameの部分にDB名を入力します。
特定のDBの特定テーブルへのアクセスや操作権限を付与するには以下のように入力します。
grant all on input_database_name.input_table_name to 'input_user_name'@'input_host_name';
※ input_table_nameの部分にテーブル名を入力します。
特定操作の権限を付与するにはallではなく、create, alter, drop, select, insert, update, deleteのように具体的に権限を指定して入力します。
grant input_authority_name on input_database_name.input_table_name to 'input_user_name'@'input_host_name';
※ input_authority_nameの部分に権限名を入力します。複数指定する場合はカンマ区切りで入力します。(ex. select, insert, update, delete)
設定した権限を有効にするためには以下のように入力します。
flush privileges;
既存データベースの確認と利用
作成済みのDBを確認するには以下のように入力します。
show databases;
利用するDBを指定するには以下のように入力します。
use input_database_name;
※ input_database_nameの部分にDB名を入力します。テーブルの作成や変更、削除、データの検索や登録、変更、削除をする場合、まず最初に利用するDBを指定する必要があります。最初に指定した後は都度指定する必要はありませんが、mysqlからログアウトした後、再ログインした場合は再度利用するDBを指定する必要があります。
以上です。