#author("2024-03-21T02:16:12+09:00","","")
#author("2024-04-12T19:56:05+09:00","","")
[[Linux]]

* MariaDB [#z101ab91]

** インストール [#mb1b3096]
 sudo apt install mariadb-server

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




----
※1) Debian にてインストール直後は、root ユーザーのパスワードは invalid (無効) となっているため、次のような方法で設定する必要がある。
** root パスワード設定 [#q1287b28]
 sudo mariadb -u root
 ALTER USER root@localhost IDENTIFIED BY '<パスワード>';
 FLUSH PRIVILEGES;
 EXIT;
戻す場合は、以下
 sudo mariadb -u root -p
 <パスワードを入力>
 ALTER USER root@localhost IDENTIFIED WITH mysql_native_password AS 'invalid';
 FLUSH PRIVILEGES;
上記設定により、linux の root ユーザー以外でもログイン可能となる。
ログインする場合は、次のように -p を付与してログインする。
 mariadb -u root -p
 <パスワード入力>
初期状態(unix_socket 利用、パスワード無効)に戻す場合は、
以下を設定すればよい。
 ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket;



 
** root パスワードリセット [#c2d45da3]
** root パスワードリセット (パスワード忘れた場合など) [#uf9e1f76]
 #
 # 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 '<パスワード>';
 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


** ユーザー作成 [#iaf50773]
 CREATE USER <ユーザー名>@localhost IDENTIFIED BY '<パスワード>';

** データベース作成 [#m7b49362]
 CREATE DATABASE <データベース名>;
 GRANT ALL PRIVILEGES ON <データベース名>.* TO '<ユーザー名>'@localhost;

トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS