0utputab1e

MySQLの初期設定についてメモしておく

 2020-07-21
 

アプリケーションでMySQLをよく使っていますが、初期設定としておきたいことを記録していきます。

初回のrootパスワード

インストール時にログファイル

  • /var/log/mysqld.log
A Temporary password is generated for root@localhost: <初期rootパスワード>

このように記述されてるので、これをまずrootログインに使用する。

(下に書いているMySQLクライアントからのログイン等に用いることができる)

 
上記で初期rootパスワードが準備されていますが、

 
A Temporary password is generated for root…(rootのために一時パスワードを作りました!)

 
となっていたので、ちゃんとしたものに作り直しておきましょう。

次の見出しで初期設定をしていきます。

 
※あらためて次回以降にVMインスタンスを立てて実際に構築し、詰まりそうなところ、手順を記録していきたいと思います。

※パスワードポリシーは公式サイトの通り、MEDIUMポリシーに沿っているので注意。

対話による初期設定

このコマンドで必要最低限のセキュリティ設定をしてくれる。

$ mysql_secure_installation

この操作では

  • rootパスワード変更
  • anonymousユーザーの削除
  • リモートからのrootユーザーでのログインの禁止
  • testデータベースの削除

のようなセキュリティにかかわる設定を対話形式で設定できます。

パスワードの設定や、他にもyesかnoで聞かれるので、必要に応じて答えていきましょう。

MySQLクライアントでログインする方法

$ mysql -u root -p

このコマンドで、 rootユーザー・パスワードありでログインします。

細かい初期設定をするなら、rootのような強い権限でログインする必要あり。

my.cnfの設定

/etc/my.cnfがあるようなので、こちらに初期設定をしていきます。

  • my.cnf
[mysqld]
# サーバ側の文字コードをutf-8に
character-set-server=utf8mb4

# データファイルが作成される場所の指定
datadir=/var/lib/mysql

# ソケットの指定(unixソケットでつなぐ場合。TCPソケットでもできる)
socket=/var/lib/mysql/mysql.sock

# デフォルトのストレージエンジン
default-storage-engine=InnoDB

# InnoDBのファイルをテーブルごとに作成するように指定
# MySQL5.6.6からデフォルトで有効
innodb_file_per_table

# パスワードのデフォルト有効期限を無効にする
# MySQL5.7からユーザーのパスワードの有効期限がデフォルトで360日になった模様
default_password_lifetime=0

## 追加設定
[mysql]

# クライアント側の文字コードもutf-8に指定
default-character-set=utf8mb4

設定の再読み込み(サービスの再起動)

上記の設定を完了したら、

$ sudo systemctl restart mysql

でmysqlデーモンを再起動する。

設定が反映されます。

必要に応じてmysqldの自動起動設定もしておきたいですね。

 
では、今日はこのへんで!

 

あわせて読みたい記事

>> Homeに戻る