タグ: MySQLユーザーの認証変更

検索結果: 1件

article-thumbnail

CentOS7にMySQL8系を構築する

【概要】 CentOS7にMySQL8系をインストールし、初期設定します。【MySQL8系をインストール】1. MariaDBをインストールしない設定をするCentOS7ではデフォルトのDBインストールはMariaDBをインストールするようになっています。今回はMySQL8系をインストールしたい為、MariaDBをインストールする設定を外します。yum remove mariadb-libsrm -rf /var/lib/mysql/2. MySQL8のレポジトリをインストール先ず、rpmコマンドでMySQL8用のレポジトリをインストールします。その後にyumコマンドでMySQLサーバーをインストールします。rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpmyum install mysql-community-server ※ MySQL Clientのみをインストールしたい場合は下記のコマンドを実行して下さい。yum install mysql-community-client3. インストールしたMySQLのバージョンを確認mysql -VmysqlVer 8.0.17 for Linux on x86_64 (MySQL Community Server - GPL)4. MySQL起動と自動起動設定systemctl start mysqldsystemctl enable mysqld【MySQLの初期設定】1. root@localhost のパスワードを調べる先ず、 root@localhost でMySQLにログインする為にパスワードを調べます。grep 'temporary password' /var/log/mysqld.log出力結果例2019-09-10T06:31:50.438223Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: spRiez%lt;T8ecここでインストールしたMySQL8のrootパスワードは右端に表示されている「spRiez%lt;T8ec」がrootユーザーのパスワードになります。2. MySQLにログインmysql -u root -p上記のコマンドでMySQLにログインできれば正常にインストールされており、かつパスワードを正しく取得できた事がわかります。3. MySQLの初期設定下記のコマンドはMySQLの最低限のセキュリティ設定を行うコマンドです。コマンドを実行するとパスワードの再設定等の各種設定に行います。2でMySQLにログインしましたが、「Control+d」を押下し、一度ログアウトしてから下記のコマンドを実行して下さい。mysql_secure_installationi. rootのパスワードを変更Change the password for root ? ((Press y|Y for Yes, any other key for No) : yrootのパスワードは変更する必要がある為、「y」にします。この後に新規パスワードの入力を2度求められるので、入力して下さい。パスワード作成は下記のサイトで簡単に作成できます。LUFTTOOLSii. 変更したパスワードで設定を進めますか?Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y変更したパスワードで進めるので「y」にします。iii. anonymous ユーザーの削除しますか?Remove anonymous users? (Press y|Y for Yes, any other key for No) : yanonymous ユーザーの削除なので「y」にします。iv. リモートからrootユーザーでアクセス拒否しますか?Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yこの質問は要注意です。セキュリティを高めるのであればリモートからのrootログインを拒否した方が良いので「y」を選択します。また、Sequel等のDB Clientを使用し、SSH接続後にlocalhostで接続する事もできるので基本的にはリモート接続できないようにする事をお勧めします。しかし、リモートからrootログインを許可した方が良いプロジェクトの場合はrootユーザーでリモートアクセスを拒否しないので「n」を選択します。ここではrootでリモートアクセスさせたくないので「y」にします。v. testデータベースの削除しますか?Remove test database and access to it? (Press y|Y for Yes, any other key for No) : ytestデータベースを削除 (存在する場合)するので「y」にします。vi. 設定の即時反映しますか?Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y即時反映させる為、「y」にします。Cf. MySQLの文字コード確認下記のSQL文でDBの文字コード等の設定が見れます。MySQLにログイン後、下記のSQL文を実行して下さい。status出力結果--------------......Server characterset:utf8mb4Dbcharacterset:utf8mb4Client characterset:utf8mb4Conn.characterset:utf8mb4......--------------【DBユーザーの設定】1. MySQLログインとユーザー確認mysql -u root -p【MySQLの初期設定】で新規設定したパスワードを入力して下さい。2. ユーザーの状態を確認する下記のSQL文でユーザーの状態を取得できます。SELECT user, host, plugin FROM mysql.user;出力結果+------------------+-----------+-----------------------+| user | host| plugin|+------------------+-----------+-----------------------+| mysql.infoschema | localhost | caching_sha2_password || mysql.session| localhost | caching_sha2_password || mysql.sys| localhost | caching_sha2_password || root| localhost | caching_sha2_password |+------------------+-----------+-----------------------+MySQL8系から「caching_sha2_password」認証がデフォルトになりました。MySQL8系よりも前のバージョンでは「mysql_native_password」認証です。また、LaravelでmigrateしようとしたりDB接続しようとする時にエラーが起きる原因となります。よって、Laravel等のプログラムを使用する場合、「mysql_native_password」認証に変更した方が良いです。3. rootユーザーの認証変更ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'lt;パスワード';※ lt;パスワード は【MySQLの初期設定】で新規設定したパスワードに置換して下さい。4. 認証変更確認再度ユーザーの状態を確認するSQL文を実行します。SELECT user, host, plugin FROM mysql.user;出力結果+------------------+-----------+-----------------------+| user| host| plugin|+------------------+-----------+-----------------------+| mysql.infoschema | localhost | caching_sha2_password || mysql.session| localhost | caching_sha2_password || mysql.sys| localhost | caching_sha2_password || root| localhost | mysql_native_password |+------------------+-----------+-----------------------+rootユーザーが「mysql_native_password」認証に変更されました。

カテゴリ: CentOS 2020-05-15 02:24:36