コピペワールド

hirooka.pro

MySQL

MySQL 8.0 を Ubuntu 18.04, CentOS 7.4 に

投稿日:

MySQL 8.0 です。

Ubuntu 18.04

A Quick Guide to Using the MySQL APT Repository
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/

[highlight_bash]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
sudo apt-get update
sudo apt-get install mysql-server[/highlight_bash]

地味にハマったのが、mysql-apt-config_0.8.10-1_all.deb のインストール中に表示されるメニューで、「MySQL Server & Cluster (Currently selected: mysql-8.0)」ではなく、選択肢の 4 つ目の「OK」をクリックすること。これをしないと MySQL 5 がインストールされるという…

インストール後、mysql_secure_installation を実行してみます。

[highlight_bash]sudo mysql_secure_installation[/highlight_bash]

すると、下記のようなエラーが表示される場合があります。

[highlight_bash]Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
... Failed! Error: Table 'mysql.role_edges' doesn't exist[/highlight_bash]

そんなときは、

[highlight_bash]sudo mysql_upgrade -u root[/highlight_bash]

を実行してみます。

mysql_secure_installation を正常に実行できた後は、何か適当なデータベースを作成してみます。

[highlight_bash]CREATE DATABASE mydatabase;
CREATE USER myuser@localhost IDENTIFIED BY 'Myuser#1234';
GRANT ALL ON mydatabase.* to myuser@localhost;
FLUSH PRIVILEGES;[/highlight_bash]

なお、MySQL 5 のノリで、

[highlight_bash]CREATE DATABASE mydatabase;
GRANT ALL ON mydatabase.* to myuser@localhost IDENTIFIED BY 'Myuser#1234';
FLUSH PRIVILEGES;[/highlight_bash]

のようにデータベースを作成しようとすると、下記のようなエラーとなってしまうので気を付けます。

[highlight_bash]ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'xxx'' at line 1[/highlight_bash]

CentOS 7.4

Installing MySQL on Linux Using the MySQL Yum Repository
https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

インストールして、起動と自動起動設定を行っておきます。

[highlight_bash]wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
sudo yum localinstall mysql80-community-release-el7-1.noarch.rpm
sudo yum install mysql-community-server
sudo systemctl start mysqld
sudo systemctl enable mysqld[/highlight_bash]

地味にハマるのが、MySQL の root の初期ログインパスワードです。下記のコマンドで調べてみます。

[highlight_bash]grep password /var/log/mysqld.log[/highlight_bash]

結果は例えば、下記の通り。

[highlight_bash]2018-06-22T15:55:11.198318Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: XXXXXXXXXXXX[/highlight_bash]

このパスワードを使用し、まずは mysql_secure_installation を実行します。その後、MySQL にログインし、データベースを作成するなどします。データベースの作成は、前述の Ubuntu の場合と同様です。

[highlight_bash]sudo mysql_secure_installation
mysql -u root -p[/highlight_bash]

-MySQL

Copyright© hirooka.pro , 2018 All Rights Reserved.