Ubuntu18.04にMySQL8.0をインストール、初期設定、データベースを作成する。

Ubuntu

新規に立ち上げたVPSにUbuntu18.04LTSにMySQL8.0をインストールして初期設定、データベース作成までやります。

環境
AWS Light Sail 5ドルプラン (1CPU メモリ1GB、SSD40GB)
OS
Ubuntu18.04LTS
実行日
2019年12月21日
sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.deb && sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb
sudo apt update && sudo apt-get install mysql-server -y
sudo  mysql_secure_installation
sudo systemctl status mysql
sudo systemctl restart mysql
mysql -u root -p
mysql> CREATE DATABASE  ;
mysql> CREATE USER  @localhost  IDENTIFIED  WITH  mysql_native_password  BY '';
mysql> GRANT  ALL  PRIVILEGES  on  .*  to  @localhost;

以下補足説明のようなものが書いてあります。

インストール

MySQLのホームページからMySQLのレポジトリをダウンロードしてインストールします。

MySQL :: Begin Your Download

MYSQLホームページのMYSQLレポジトリ画面

赤枠の「No thanks, just start my download.」からダウンロードできます。

sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.deb && sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb

今日現在の最新版は0.8.14-1。確か今年の2月頃0.8.10-1だったので3か月に1回アップデートしている感じ?

MySQLインストール画面

途中でこの画面が出たら一番下のOKを選択してENTER。

sudo apt update && sudo apt-get install mysql-server -y

MYSQLルートパスワード入力画面

適当に仮ルートパスワードを決めて入力します。ここでは1111でもOKです。ENTER押したらひと回り小さい画面が出てくるので先ほど決めた仮ルートパスワードを入力してENTER。

MySQL8パスワード認証画面

下の「Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)」を選択してENTER。

インストールが終わったら確認。

systemctl status mysql

MYSQL8ステータス確認

赤枠のところがenableになっていれば自動起動設定が出来ています。

sudo systemctl enable mysql   
sudo systemctl disable mysql  
sudo systemctl restart mysql
  • 自動起動設定on
  • 自動起動設定off
  • 再起動

初期設定

sudo  mysql_secure_installation

MYSQL8初期設定画面

  1. 先ほど決めた仮ルートパスワードを入力。
  2. yを入力してパスワード検証コンポーネントをセットアップ。
  3. パスワードの強度を選択。
    • 0・・・8文字以上
    • 1・・・8文字以上、アルファベットの大文字、小文字、数字、特殊記号
    • 2・・・8文字以上、アルファベットの大文字、小文字、数字、特殊記号 + 辞書チェック
  4. ルートパスワードを変更するためyを入力
  5. 新ルートパスワード入力
  6. 新ルートパスワード再入力

正直なところパスワードの強度の1と2の差が分かってないのですが、2を選択して”ABC+123-def”こんな感じのパスワードで問題なく使えてます。

以降y+ENTER連打で初期設定終了。

データベース作成

MySQLにログイン。

mysql -u root -p

mysqlログイン画面

ルートパスワードを入力してMySQLにログインしたら、データベース作成、ユーザー作成、ユーザーに権限付与します。


mysql> CREATE DATABASE  111;
mysql> CREATE USER  222@localhost  IDENTIFIED  WITH  mysql_native_password  BY '333';
mysql> GRANT  ALL  PRIVILEGES  on  111.*  to  222@localhost;
mysql> exit
  • データベース 111 を作成
  • パスワード 333 の ユーザー 222 を作成
  • ユーザー 222 に、データベース 111 の全権付与
  • ログアウト

quitでもログアウトできます。

データベース削除

初期段階ならもし間違えても修正するより削除して作り直したほうが簡単です。


mysql> DROP DATABASE  111;
mysql> DROP USER  222@localhost;
  • データベース削除
  • ユーザー削除

バイナリログ設定

バイナリログの保存期間が長いと、何もしていなくてもストレージ容量が不足するのでバイナリログの保存期間設定をします。

mysqld.cnfを開く「binlog_expire_logs_seconds = 秒;」で保存期間を設定します

vi /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]に「binlog_expire_logs_seconds = 秒;」を追記して保存期間を設定します。


[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log
binlog_expire_logs_seconds = 604800
  • 1日=86400秒
  • 1週間=604800秒
  • 1か月=2592000秒

設定したらMysqlを再起動します。

systemctl resart mysql

MYSQLにログインして確認します

mysql -u root -p
Enter password:
mysql> SHOW GLOBAL VARIABLES like 'binlog_expire_logs_seconds';

MYSQL8 バイナリログ確認

バイナリログの保存期間変更終了。

バイナリログ削除

バイナリログ/var/lib/mysqlにありますが、rmで削除ぜずmysqlにログインして削除します。


mysql> show master logs;
mysql> purge master logs to 'binlog.000004';
  • バイナリログ確認
  • binlog.000004以前のバイナリログを削除

MYSQL8 バイナリログ削除

途中間違えてますが、御覧の通りやり直すバイナリログがありません・・・。それはともかくこんな感じで削除します。

Ubuntu
スポンサーリンク
仮想犬

コメント

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