CentOS7でmysqlを使おうとしたら、なんか知らないけどMariaDBっていうものが出しゃばってきた。
ので、こっちを使ってみようと思い初期セットアップ手順を備忘します。
とはいえ、まじで最低限しかしていないので、色々なチューニングが必要になったら都度更新していこうかなと思っております。
MariaDBのインストール
もちろんyumで実施します。yum万歳。
# yum install mariadb mariadb-server
<中略>
インストール:
mariadb-server.x86_64 1:5.5.60-1.el7_5
依存性関連をインストールしました:
perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
perl-DBD-MySQL.x86_64 0:4.023-6.el7 perl-DBI.x86_64 0:1.627-4.el7
perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7
完了しました!
どうやらyumでインストールするとver5.5.60がインストールされるようです。
まあ、脆弱性があろうがなかろうがyumで入るもの以上のものは入れない主義ですが。
文字コードをutf-8に変更する
MariaDBのデフォルトの文字コードはlatin1になっているらしいです。
このままで日本語を扱うと文字化けの原因になるため、utf-8へ変更します。
# vi /etc/my.cnf
----
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
Settings user and group are ignored when systemd is used.
If you need to run mysqld under a different user or group,
customize your systemd unit file for mariadb according to the
instructions in http://fedoraproject.org/wiki/Systemd
character-set-server=utf8 #<- 追記
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
include all files from the config directory
#
!includedir /etc/my.cnf.d
これを怠ると日本語を扱うと文字化けするので必ず実施。
「俺はアルファベットしか使わないぜ!」って人はそのままでいいと思います。
MariaDBを自動で起動するようにする
サーバの再起動時などに自動で立ち上がってくれるように設定します。
これを怠ると忘れたころに大惨事になります。
# systemctl enable mariadb.service
# systemctl list-unit-files -t service | grep mariadb
mariadb.service enabled
OK!
みんなは重要なサービスはきちんと自動起動設定をしましょう。マジで。
忘れるとそのサーバは地雷原と化します。
MariaDBを起動する
CentOS7になって起動コマンドがsystemctlになったのまだ慣れない
# systemctl start mariadb.service
OK
初期セットアップ
MariaDBが起動したので、初期セットアップをしていきましょう。
# /usr/bin/mysql_secure_installation
以上のコマンドを実行すると、対話的に初期セットアップを行うことができます。
Enter current password for root (enter for none):
rootユーザーのパスワードを聞かれています。
初期はノンパスなのでそのままエンターを押下。
Set root password? [Y/n] Y
New password: [パスワード]
Re-enter new password: [パスワード]
Password updated successfully!
rootユーザーのパスワード設定です。
新しく変更しないのであればnを入力しましょう。
変更する場合は新しいパスワードを入力しましょう。2回聞かれます。
Remove anonymous users? [Y/n] Y
… Success!
anonymousユーザーを削除するかどうかです。
使わないユーザーを残しておくのはセキュリティ面でもあまりよろしくないので消しておきます。
Disallow root login remotely? [Y/n] Y
… Success!
rootでリモート接続できるようにするかどうか。
あんまり有効にしたくはないのですが、どうしても外からつなぎたい要件があったので有効に。
基本的にローカルからしかつながない、とか、リモート接続する際は一般ユーザーのみに制限したい、などという場合はnしましょう。
Remove test database and access to it? [Y/n] Y
Dropping test database…
… Success!
Removing privileges on test database…
… Success!
最初からtestっていうdatabaseがあるらしいので、消すかどうか聞かれます。
いらないので削除。
Reload privilege tables now? [Y/n] Y
… Success!
上記設定による権限の変更等を反映するかどうか?よくわからんです。
ほかの解説されているサイトとか見たらほとんどYだったので、それに倣っています。
これで初期セットアップは完了です。
接続してみる
# mysql -u root -p"パスワード"
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
接続完了!
というか、接続するときはmysqlコマンド使うんですね。
まあ、MariaDB自体がMysqlの後継?のようなものらしいので、互換はあるらしいのですが。
まとめ
Mysqlの後継DBとあって、設定方法はMysqlと全く同じ。
おそらくSQLコマンドも同じなのでしょうが、色々いじくってみたいと思います。
コメント