広告

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/

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

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

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

sudo mysql_secure_installation

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

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

そんなときは、

sudo mysql_upgrade -u root

を実行してみます。

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

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

なお、MySQL 5 のノリで、

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

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

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

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

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

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

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

grep password /var/log/mysqld.log

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

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

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

sudo mysql_secure_installation
mysql -u root -p

広告

MySQL

Posted by admin