元からsecurity vulnerabilityを突かれてデータ漏洩その他の問題を起こす最大の原因の一つであるためであるのはわかっているものの、ただ普通にSQLデータベースを使いたいユーザにとってはなんだかどんどん使いづらくなっているMySQL。
WebやPHPとの連携もしたいので、まずは盲目的に下記のようにインストール。
Webサーバ
sudo apt -y install apache2
MySQLサーバ
sudo apt -y install mysql-server
PHP
sudo apt -y install php libapache2-mod-php php-mysql
次にMySQLのセットアップなのだけれど、MySQLを呼び出すプログラムの事情からこれまでと同様のrootユーザ、パスワードによるアクセスを可能にしたい。ところが最近はそれをブロックされまくりで本当に面倒。
以下、確かこれでできた、という記録
sudo mysqladmin -u root password
でrootのパスワードをセット。ところが、これで
mysql -u root -p
でログインしようとしてもブロックされてしまう。ので、
sudo mysql -u root
でログイン後、
SELECT user, host, plugin FROM mysql.user;
を見てみると、pluginがcaching_sha2_passwordだったり、auth_socketだったりする。
そこでmysql.infoschema以外はmysql_native_passwordに変えてしまう。
最後に
FLUSH PRIVILEGES;
としてquitし、
sudo service mysql restart
で変更を有効にする。もしかすると上記の手順はどこか間違っているかもしれないが、ネットを検索しても書く人によっててんでばらばらで、まだまだ情報が錯綜している気がする。
このように面倒なので、最近はただ個人的にSQLデータベースを使いたいと思った場合はSQLite3を頻用している。速いし、フィールド数やフィールドサイズがMySQLよりも大きくできるし、マルチアクセスが不要であれば本当に使いよい。