【MySQL】インストール〜パスワード変更〜権限付与
もくじ
はじめに
新しくOSを作った時など、MySQLを一からインストールして設定する場合もあるでしょう。
そんな時の手順です。
MySQLのインストール
$ yum install -y mysql-community-server
インストールできたら、状態を確認して起動しましょう。
// MySQL ステータス確認 $ systemctl status mysqld // MySQL 起動 $ systemctl start mysqld
ログイン
# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
この時、おそらくパスワードで怒られます。
初回のパスワードはlogに書かれているので、それを確認します。
$ grep password /var/log/mysqld.log 2020-11-27T08:54:12.068065Z 1 [Note] A temporary password is generated for root@localhost: hNccZ9fBps.a
hNccZ9fBps.a
の部分が初期パスワードです。おそらく端末によって異なります。このパスワードを使ってログインしましょう。
# mysql -u root -p Enter password:
パスワードの変更
パスワードを初期値のままの状態でデータベースを新規作成しようとしたりすると、またまた怒られます。
mysql> create database mydb; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
なので、パスワードを初期値からきちんと変更しておきましょう。
mysql> set password for root@localhost=password('hogefuga@piyo123'); Query OK, 0 rows affected, 1 warning (0.00 sec)
hogefuga@piyo123
の部分に、任意のパスワードを指定します。
ただし、パスワードポリシーに則ったものにしないと以下のようにエラーになると思います。
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
大文字小文字数字記号などポリシーを確認の上、設定しましょう。
権限を付与
データベースを操作するユーザーを作成し権限を与えます。
// データベース作成 $ create database mydb; // ユーザーを作成 $ create user 'myadmin'@'localhost' identified by '************'; // 権限を付与 $ grant all on mydb.* to 'myadmin'@'localhost';
mydb
(データベース名)やmyadmin
(ユーザ名)は任意に設定してください。
************
の部分はパスワードになります。こちらも適切なものに設定してください。
完成
今回の流れで、以下のようなMySQL設定が完了しました。
データベース名 : mydb ユーザー名 : myadmin パスワード : ************ ホスト名 : localhost