#author("2024-03-21T02:52:06+09:00","","") #author("2024-04-12T19:56:05+09:00","","") [[Linux]] * MariaDB [#z101ab91] ** インストール [#mb1b3096] sudo apt install mariadb-server ** 設定 [#bf17be64] sudo mysql_secure_installation +現在の 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 ** root パスワード設定 [#q1287b28] 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 パスワードリセット (パスワード忘れた場合など) [#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 '<パスワード>'; # # 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;