1 | sudo apt-get install mysql-server |
rootのパスワードを設定していないので 「mysql -u root」とするも「ERROR 1698 (28000): Access denied for user 'root'@'localhost'」とアクセス拒否。「sudo mysql」ならOKだったので作業を進める。
1 2 3 4 5 6 7 | mysql> select host, user, plugin, authentication_string from mysql.user where user= 'root' ; +-----------+------+-------------+-----------------------+ | host | user | plugin | authentication_string | +-----------+------+-------------+-----------------------+ | localhost | root | auth_socket | | +-----------+------+-------------+-----------------------+ 1 row in set (0.00 sec) |
インストールでrootのパスワードを空にすると、rootの認証にはauth_socket pluginを使うように設定されるらしい。
auth_socket pluginは、MySQLクライアントを実行したlinuxユーザーを、MySQLのユーザーとして認証しようとするらしい。
このままではrootでphpmyadminにログインできませんがセキュリティの事を考えるとこのままで良いかと
ユーザーを作ってそのユーザーで'apps_alpha'、'apps_beta'、'apps_gamma'というようにデーターベースを作れるようにすれば良いんじゃない
ユーザーの作成
1 2 | mysql> CREATE USER wwwuser@localhost IDENTIFIED BY 'password' ; Query OK, 0 rows affected (0.58 sec) |
権限を付加
1 2 | mysql> GRANT ALL PRIVILEGES ON `apps\_%`.* TO 'wwwuser' @ 'localhost' ; Query OK, 0 rows affected (0.01 sec) |
確認してみましょう
1 2 3 4 5 6 7 8 | mysql> show grants for wwwuser@localhost; +--------------------------------------------------------------+ | Grants for wwwuser@localhost | +--------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'wwwuser' @ 'localhost' | | GRANT ALL PRIVILEGES ON `apps\_%`.* TO 'wwwuser' @ 'localhost' | +--------------------------------------------------------------+ 2 rows in set (0.00 sec) |
問題無いようなので
次にphpmyadminをインストールします。
「sudo apt install」でインストールしてもいいんですが今回は手動で
オフィシャルサイトからダウンロードして解凍「/var/www/phpmyadmin」に設置します。
1 | wget https: //files .phpmyadmin.net /phpMyAdmin/4 .8.1 /phpMyAdmin-4 .8.1-all-languages.zip |
unzipが無かったのでインストール
1 | $ sudo apt install unzip |
1 | $ unzip phpMyAdmin-4.8.1-all-languages.zip |
1 | $ sudo mv phpMyAdmin-4.8.1-all-languages /var/www/phpmyadmin |
1 | $ sudo vi /etc/apache2/conf-available/phpmyadmin .conf |
1 2 3 4 5 | <Directory / var /www/phpmuadmin> Order allow,deny Allow from all </Directory> Alias /任意のディレクトリ/phpmyadmin / var /www/phpmyadmin |
任意のディレクトリに置くのはルートだとやっぱりセキュリティ的に・・・任意のディレクトリにBASIC認証でもかけておけば少しはましかな、外に置くならね
phpmyadminを有効にする
1 | $ sudo a2enconf phpmyadmin |
apachを再起動する
1 | sudo service apache2 restart |
phpMyAdminへログインした時に「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています」とワーニングが出てしまうのでphpMyAdmin 環境保管領域を設置します
「sudo mysql」でmysqlに接続して
1 | mysql> source /var/www/phpmyadmin/sql/create_tables .sql; |
1 2 | mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'wwwuser' @ 'localhost' ; Query OK, 0 rows affected (0.00 sec) |
1 2 3 4 5 6 7 8 9 | mysql> show grants for wwwuser@localhost; +---------------------------------------------------------------------------------+ | Grants for wwwuser@localhost | +---------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'cake' @ 'localhost' | | GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'wwwuser' @ 'localhost' | | GRANT ALL PRIVILEGES ON `apps\_%`.* TO 'wwwuser' @ 'localhost' | +---------------------------------------------------------------------------------+ 3 rows in set (0.00 sec) |