MySQLはリレーショナル・データベース管理システム(RDBMS)の中でも最もシェアを確保している。PHPとの連携もできサーバー上でデータを管理することができる。FacebookやYoutubeなどで使われ、XSERVERなどのレンタルサーバーでも使われている。
LinuxMintでソフトウェアの管理でmysqlで検索すると検索結果の一番上にMysql-serverが出てくる。これをクリックし、インストールボタンをクリックする。インストールが完了すると端末でバージョン確認ができる。
$ mysqld --version
mysqld Ver 5.7.30-0ubuntu0.18.04.1 for Linux on x86_64 ((Ubuntu))
systemdの設定も見てみよう。/etc/systemd/system/multi-user.target.wantsディレクトリにmysql.serviceリンクファイルがある。
# MySQL systemd service file
[Unit]
Description=MySQL Community Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=/run/mysqld/mysqld.pid
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
LimitNOFILE=5000
systemctlコマンドで使用されるサービス名がmysql、pstreeコマンドなどで表示されるプロセス名がmysqldである。
systemctl status mysqlコマンドを実行し、Active: active (running)が表示されていればサービスが起動中である。起動していなければsudo systemctl start mysqlコマンドで起動できる。
MySQLはバージョンによってパスワードの初期設定状態が異なる。バージョン5.7.30では最初から設定されているが表示されない。MySQLはオラクル社が開発しているためか、インストール直後でもセキュリティ対策が施してあるようである。
初期設定は手順が長いので詳細は以下のリンクを参照のこと。
ここでは手順のみ示す。
$ sudo mysql_secure_installationコマンドを実行する。以下対話的に答えていく。
y(プラグインセットアップ) → 0(パスワード強度) → 新しいパスワード → パスワード再入力 → y(決定) → y(匿名ユーザ削除) → y(ルートリモートログイン許可) → y(testデータベース削除) → y(特権テーブルリロード)
次にmysqlにルートでログインするため、「sudo mysql -u root」コマンドを実行する。
続いて、パスワード強度の設定を行うため、「SHOW VARIABLES LIKE 'validate_password%';」コマンドを実行。簡単なパスワードでも設定できるようにする例を示す
set global validate_password_length=5;
set global validate_mixed_case_count=0;
set global validate_number_count=0;
set global validate_special_char_count=0;
これでパスワードは5文字以上であればOKとなる。
次にユーザの作成を行う。ユーザ名をcpage、パスワードをpasswdにしたい場合は以下のようにする。
CREATE USER 'cpage'@'localhost' IDENTIFIED BY 'passwd';
select user,host from mysql.user;でユーザ一覧を表示しユーザが追加されたことを確認する。
作成したcpageにすべての権限を設定する「GRANT all ON *.* TO 'houtarou'@'localhost';」コマンドを実行する。
SHOW GRANTS FOR 'cpage'@'localhost';コマンドでcpageユーザの権限を確認できる。
cpageユーザを削除するには「DROP USER 'cpage'@'localhost';」を実行する。
exitコマンドでルートログインからログアウトする。
cpageユーザでログインするには、「mysql -u cpage -p」コマンドを実行し、さらにパスワードを入力すればよい。