CentOS 7 MySQLのリリースにより、世界で最も人気のあるオープンソースのリレーショナルデータベース管理システムがCentOSのリポジトリで利用できなくなり、MariaDBがデフォルトのデータベースシステムになりました。 MariaDBは、MySQLの下位互換性のあるバイナリドロップイン置換です。
このチュートリアルでは、CentOS7マシンにMySQLをインストールする方法を紹介します。
MySQLの代わりにMariaDBをインストールする場合は、チュートリアルでインストール手順を確認してください。前提条件#
このチュートリアルを開始する前に、sudo権限を持つユーザーアカウントまたはrootユーザーでサーバーにログインしていることを確認してください。 rootではなくsudouserとして管理コマンドを実行することをお勧めします。システムにsudoユーザーがいない場合は、次の手順に従ってsudoユーザーを作成できます。
はじめに述べたように、MySQLはデフォルトのCentOS 7リポジトリでは利用できないため、MySQLYumリポジトリからパッケージをインストールします。次のセクションでは、MySQL8.0とMySQL5.7をインストールする方法を示します。
MySQLバージョンを1つだけインストールする必要があります CentOS7サーバー上。インストールするバージョンがわからない場合は、サーバーにデプロイするアプリケーションのドキュメントを参照してください。
MySQL8.0をCentOS7にインストールします#
この記事を書いている時点では、MySQLの最新バージョンはバージョン8.0です。 CentOS 7サーバーにインストールするには、次の手順に従います。
-
次のコマンドを使用してMySQL8.0リポジトリを有効にします。
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
-
yumを使用してMySQL8.0パッケージをインストールします:
sudo yum install mysql-community-server
インストール中に、yumはMySQLGPGキーをインポートするように要求する場合があります。
y
と入力しますEnter
を押します 。
MySQL5.7をCentOS7にインストールします#
MySQLの以前の安定したリリースであるMySQLバージョン5.7をCentOS7サーバーにインストールするには、以下の手順に従います。
-
次のコマンドを使用してMySQL5.7リポジトリを有効にします。
sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
-
MySQL5.7パッケージを次のコマンドでインストールします。
yumを使用して他のパッケージと同じようにMySQLをインストールします:
sudo yum install mysql-community-server
インストールが完了したら、MySQLサービスを開始し、次のコマンドで起動時に自動的に開始できるようにします。
sudo systemctl enable mysqld
sudo systemctl start mysqld
次のように入力して、MySQLサービスのステータスを確認できます。
sudo systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-05-23 11:02:43 UTC; 14min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 4293 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 4310 (mysqld)
Status: "SERVER_OPERATING"
CGroup: /system.slice/mysqld.service
└─4310 /usr/sbin/mysqld
MySQLの保護#
MySQLサーバーを初めて起動すると、MySQLrootユーザーの一時パスワードが生成されます。次のコマンドを実行すると、パスワードを見つけることができます。
sudo grep 'temporary password' /var/log/mysqld.log
出力は次のようになります。
2018-05-23T10:59:51.251159Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: q&0)V!?fjksL
次のコマンドで一時的なrootパスワードの入力を求められるため、パスワードをメモしておいてください。
mysql_secure_installation
を実行します MySQLインストールのセキュリティを向上させるコマンド:
sudo mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
一時パスワードを入力すると、ユーザーrootの新しいパスワードを設定するように求められます。パスワードは少なくとも8文字の長さで、少なくとも1つの大文字、1つの小文字、1つの数字、および1つの特殊文字を含む必要があります。
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
このスクリプトでは、匿名ユーザーを削除し、rootユーザーのローカルマシンへのアクセスを制限し、テストデータベースを削除するように求められます。すべての質問に「Y」(はい)と答える必要があります。
コマンドラインからMySQLに接続する#
ターミナルを介してMySQLと対話するには、MySQLサーバーパッケージの依存関係としてインストールされているMySQLクライアントを使用します。
rootユーザーとしてMySQLサーバーにログインするには、次のように入力します。
mysql -u root -p
mysql_secure_installation
のときに、以前に設定したルートパスワードを入力するように求められます。 スクリプトが実行されました。
パスワードを入力すると、以下に示すようにmysqlシェルが表示されます。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.11 MySQL Community Server - GPL
Copyright (c) 2000, 2018, 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シェルに接続したら、次のコマンドを入力して新しいデータベースを作成できます。
CREATE DATABASE new_database;
Query OK, 1 row affected (0.00 sec)
テーブルの作成#
データベースを作成したので、データを格納するためのテーブルを作成できます。
テーブルを作成するためのSQLステートメントを実行する前に、データベースに接続する必要があります。
use new_database;
この例では、contacts
という名前の単純なテーブルを作成します id
の3つのフィールド 、name
およびemail
:
CREATE TABLE contacts (
id INT PRIMARY KEY,
name VARCHAR(30),
email VARCHAR(30)
);
Query OK, 1 row affected (0.00 sec)