Ubuntu20.04にmysqlをインストールする

今回は、勉強しているPythonのDjangoでphpmyadminを利用するための環境構築の一環として、Ubuntuにmysqlをインストールしたので、備忘録として書きます。

【環境】

・Windows10(VMWare Workstation15 player)
・Ubuntu20.04
・MySQL8.0.20

【事前確認】

まずはターミナルを開いて念のためアップデートしておきます。

sudo apt update
sudo apt upgrade

【MySQLインストール】

アップデート完了後、SQLサーバとクライアントをインストールします。

sudo apt install mysql-server mysql-client

インストールできたらバージョンの確認を行います。

mysql --version
mysql Ver 8.0.20-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

サービスが起動できているかを確認します。

sudo service mysql status
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:> Active: active (running) since Mon 2020-06-29 19:52:29 PDT; 1min 30s ago Main PID: 10994 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 4624) Memory: 326.4M CGroup: /system.slice/mysql.service └─10994 /usr/sbin/mysqld Jun 29 19:52:28 ubuntu systemd[1]: Starting MySQL Community Server... Jun 29 19:52:29 ubuntu systemd[1]: Started MySQL Community Server.

次のコマンドで、MySQLの初期設定を行います。

sudo mysql_secure_installation
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 Please set the password for root here. New password: *** Re-enter new password: *** Estimated strength of the password: 25 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!

以上でMySQLのインストールは完了しました。
念のためにMySQLサーバに接続してみます。

sudo mysql -u root -p
Enter password: *** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql>

mysqlとプロンプトが表示されていれば無事接続することができています。

元に戻る場合は「quit」で戻ります。

続いて、phpmyadmin用のユーザーを作成しておきます。

ユーザー名:testuser

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'パスワード';

ユーザーの確認

SELECT user, host FROM mysql.user;

もし以下のようなエラーが出た場合は、パスワードポリシーに沿ってパスワードを設定してください。

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

パスワードポリシー確認コマンド

SHOW VARIABLES LIKE 'validate_password%';

もし変更したいと思ったら次のコマンドを入力します。

set global validate_password.length=6;
set global validate_password.policy=LOW;

ユーザーに権限をつけます
以下のコマンドは「testuser」にすべての権限を、すべてのデータベースに適用しています。

GRANT ALL ON *.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;

権限を確認

show grants for testuser@localhost;

以上です。

コメント

タイトルとURLをコピーしました