Linux

MariaDB

インストール

sudo apt install mariadb-server

設定

sudo mysql_secure_installation
  1. 現在の MariaDB の root パスワード。
    Enter current password for root (enter for none): <Enter>
    #
    # sudo で実行しているため入力不要
    # そもそもインストール直後は、root ユーザーのパスワードは無効値であり、
    # 一般ユーザーで実行すると何を入力してもエラーとなる。
  2. UNIX ソケット認証に切り替えるか否か
    Switch to unix_socket authentication [Y/n] n
  3. root パスワードを変更するか。(デフォルトは、パスワード無効)
    Change the root password? [Y/n] n
  4. 匿名ユーザーを削除する
    Remove anonymous users? [Y/n] y
  5. リモートからの root ユーザログインを無効化する
    Disallow root login remotely? [Y/n] y
  6. テスト用のデータベース、アクセスを削除する
    Remove test database and access to it? [Y/n] y
  7. 特権情報をリロードする
    Reload privilege tables now? [Y/n] y

root パスワード設定

sudo mariadb -u root
ALTER USER root@localhost IDENTIFIED BY '<パスワード>';
FLUSH PRIVILEGES;
EXIT;

上記設定により、linux の root ユーザー以外でもログイン可能となる。 ログインする場合は、次のように -p を付与してログインする。

mariadb -u root -p
<パスワード入力>

初期状態(unix_socket 利用、パスワード無効)に戻す場合は、 以下を設定すればよい。

ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket;

root パスワードリセット (パスワード忘れた場合など)

#
# mariadb 停止 & safe モードで起動
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables --skip-networking &
#
# root ユーザーでログインしてパスワードを変更
sudo mariadb -u root
FLUSH PRIVILEGES;
ALTER USER root@localhost IDENTIFIED BY '<パスワード>';
#
# mysqld_safe の停止 & mariadb 起動
MYSQL_PID=`sudo cat /var/run/mysqld/mysqld.pid`
kill $MYSQL_PID
sudo systemctl start mariadb

ユーザー作成

CREATE USER <ユーザー名>@localhost IDENTIFIED BY '<パスワード>';

データベース作成

CREATE DATABASE <データベース名>;
GRANT ALL PRIVILEGES ON <データベース名>.* TO '<ユーザー名>'@localhost;
トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS