CLOVER🍀

That was when it all began.

Ubuntu Linux 18.04 LTSに、MySQL 8.0をインストールする

MySQL 8.0がリリースされて少し経ち、ちょっと遅れている感じはしますが、MySQL 8.0をインストールしたいと思います。

対象の環境は、Ubuntu Linux 18.04 LTSです。

APT Repositoryを追加して、インストールする方法でいきましょう。

MySQL :: Download MySQL APT Repository

MySQL :: A Quick Guide to Using the MySQL APT Repository

インストール

ダウンロード。

$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb

リポジトリの情報を追加。

$ sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb

  1. MySQL Server & Cluster (Currently selected: mysql-8.0)  2. MySQL Tools & Connectors (Currently selected: Enabled)  3. MySQL Preview Packages (Currently selected: Disabled)  4. Ok
Which MySQL product do you wish to configure? 4

パッケージアップデート。

$ sudo apt-get update

MySQLインストール。

$ sudo apt-get install mysql-server

途中、認証系のプラグインについて聞かれたりします。

After installation, the default can be changed by setting the
default_authentication_plugin server setting.

  1. Use Strong Password Encryption (RECOMMENDED)
  2. Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)
Select default authentication plugin 1

起動。

$ sudo service mysql start

停止。

$ sudo service mysql stop

とありますが、止まらない…。

設定

設定は、こんな感じに。
/etc/mysql/mysql.cnf

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

[mysql]
default-character-set = utf8mb4
# safe_updates
show_warnings


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

[mysqld_safe]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
basedir    = /usr
datadir    = /var/lib/mysql
tmpdir   = /tmp
log-error    = /var/log/mysql/error.log

port = 3306
bind-address = 0.0.0.0
character-set-server = utf8mb4
collation_server = utf8mb4_ja_0900_as_cs_ks
transaction-isolation = READ-COMMITTED

## gtid
gtid_mode = on
enforce_gtid_consistency = on

## binary log
log-bin = mysql-bin
sync_binlog = 1
binlog_expire_logs_seconds = 864000

設定は、相変わらずの日本語まわり、けっこう悩みました。

MySQL 8.0ではcollationに変化があるみたいなので、このあたりを確認しつつ、今回は「utf8mb4_ja_0900_as_cs_ks」を選択。選択肢として、「utf8mb4_ja_0900_as_cs」も
覚えておきましょう。

漢(オトコ)のコンピュータ道: MySQL 8.0登場!立ち止まることを知らない進化はこれからも続く。

日々の覚書: MySQL 8.0.1でutf8mb4_ja_0900_as_csが導入された

MySQL 8.0で憶えておいてほしいこと

MySQLの文字コード事情 2017春版

MySQLの日本語コレーション - @tmtms のメモ

あとは、このあたりを見つつ適宜設定する感じで。

MySQL :: MySQL 8.0 Reference Manual :: 5.1.7 Server System Variables

MySQL :: MySQL 8.0 Reference Manual :: 15.13 InnoDB Startup Options and System Variables

MySQL :: MySQL 8.0 Reference Manual :: 17.1.6.4 Binary Logging Options and Variables

MySQL :: MySQL 8.0 Reference Manual :: 17.1.6.5 Global Transaction ID Options and Variables