ダウンロードとインストール
サーバーのパッケージインデックスを更新
sudo apt update
MySQLをインストール
sudo apt install mysql-server
セキュリティ設定
sudo mysql_secure_installation
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
2
rootユーザーのパスワードを設定
password: 100
パスワードの強さチェックを確認の後、Y を入力してスクリプトを継続します。
Remove anonymous users? 匿名ユーザーを削除しましか?
匿名ユーザーは名前を持たない、パスワードも設定されていないユーザーです。匿名ユーザーを使えば、ユーザー名やパスワードなしでMySQLに問題なく接続できてしまうということです。
【中略】
MySQLの安全性を高めるためにも、匿名ユーザーは削除しておくべきです。
http://lovee7.blog.fc2.com/blog-entry-25.html
匿名ユーザーの排除
Remove anonymous users? (Press y|Y for Yes, any other key for No)
Y
MySQLログインと設定
ログイン
sudo mysql -u root
ワードプレス用のデータベース作成
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ユーザーネームとホスト名
CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'パスワード';
ホスト名
「`%`」の部分がホスト名。「`%`」のワイルドカードはホスト名を省略していることを表す。
→wordpressuser
= wordpressuser
@%
権限付与
GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';
権限の種類
項目 |
---|
グローバルレベル(G) 全てのデータベースに適用:mysql.user テーブル GRANT ALL ON . TO user; GRANT SELECT, INSERT ON . TO user; |
データベースレベル(D) 特定のデータベース内の全てのオブジェクトに適用:mysql.db テーブル GRANT ALL ON db_name.* TO user; GRANT SELECT, INSERT ON mydb.* TO user; |
テーブルレベル(T) 特定のテーブル内の全てのカラムに適用:mysql.tables_priv テーブル GRANT ALL ON db_name.table_name TO user; GRANT SELECT, INSERT ON db_name.mytbl TO user; |
カラムレベル(C) 特定テーブル内の単一カラムに適用:mysql.columns_priv テーブル GRANT SELECT (col1), INSERT (col1, col2) ON db_name.table_name TO user; |
権限のフラッシュ
FLUSH PRIVILEGES;
ユーザー一覧
SELECT User, Host FROM mysql.user;
ルートユーザーでログイン
sudo mysql
データベースとテーブル定義例
参考