プログラミングを始め、システム開発を行うときに必ずと言っていいほどセットで登場するのがデータベース(DB)です。
データベースとはデータを保存するためのソフトウェアであり、リレーショナルデータベース(RDB)が主流です。
データベースの作成やそれらにアクセス可能なユーザなどを管理するソフトウェアがMariaDBやMySQL、PostgreSQL、Oracle、SQLServerといったものです。
RDBにおいて覚える必要があるのはSQLというデータベースを操作するための言語です。
データを格納する箱であるテーブルを作成したり、データの登録、更新、削除、検索といったことをSQLを使って行います。
今回はSQLの基礎知識ではなく、CentOS7環境に最新のMariaDBをインストールする方法、MariaDBではなくMySQLをインストールする方法をご紹介いたします。
MySQLおよびMariaDBにおけるユーザの作成、データベースの作成、ユーザへの権限付与の方法については別途記載を予定しています。(自分自身がよく忘れてしまうので。特に権限付与あたり。)
※ SQL自体は基本的にMySQLであってもPostgreSQLであってもOracleであっても文法には大きな違いはありません。項目のデータ型や用意されている関数などちょっとした違いはあります。SQLの書き方についてはSQLServerが一番癖が強いと個人的には感じております。
MariaDBの最新版をCentOSにインストールする
CentOS7のyumで標準インストールされるのはMariaDBですが、バージョンが古いです。
公式サイトで最新版をインストールするための以下コマンドが公開されています。(公式サイトへ)
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
バージョンを指定してインストールしたい方は以下の通りです。
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.3"
サポートされているバージョンは以下の通りです。上記コマンドやサポートバージョンは変わる可能性がありますので、インストール前に必ず公式サイトで情報をご確認ください。
- mariadb-5.5
- mariadb-10.0
- mariadb-10.1
- mariadb-10.2
- mariadb-10.3
- mariadb-10.4
上記のコマンドで最新のMariaDBがyumに追加され、以下のコマンドでパッケージをインストールすることができます。
# yum -y install MariaDB-server MariaDB-client
CentOS7にMariaDBではなくMySQLをインストールする(yum収録のパッケージをMySQLに変更する)
MySQLから派生したMariaDBよりもMySQLを使いたいという方は以下の手順でyumのMariaDBパッケージを削除し、MySQLに変更することが可能です。
CentOS7ではMariaDBがyumの標準になっておりますが、例えば、レンタルサーバで利用しているDBがMySQLなのでMariaDBではなくMySQLをインストールしたいなど、環境をそろえる際に必要になるときがあります。
MySQLの公式でyumへの追加方法が公開されています。(公式サイトへ)
MariaDBがインストールされた状態ですと、MySQLと競合して上手くインストールすることはできません。そのため、MySQLをインストールする場合はMariaDBの削除が必要です。両方の環境を保持したい場合は仮想マシンで環境構築することをお勧め致します。Dockerでコンテナ環境を作成したり、仮想マシン自体の複製(Vagrantを利用すると楽)を行って複数種類の仮想マシン環境を用意することができます。
本題に戻り、まずはMariaDBの削除を行います。
# yum -y remove mariadb-libs
# rm -rf /var/lib/mysql
続いてMySQLのyumリポジトリ向けRPMパッケージをダウンロードします。CentOSのLinuxカーネルのバージョンを確認して、公式のダウンロードページのリンクを確認します。
MySQL Community Downloads → MySQL Yum Repository → ex.【Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package】
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
# yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
上記コマンドでリポジトリにMySQLが追加され、以下のコマンドでインストールします。
# yum -y install mysql-community-server
以上です。
ちなみにサービスの起動と次回CentOSの起動時に自動的にサービスを立ち上げる場合は以下のコマンドで設定することができます。enableで次回OS起動時に自動的にサービスを起動します。startは今すぐにサービスを起動します。
【MariaDBの場合】
# systemctl enable mariadb
# systemctl start mariadb
【MySQLの場合】
# systemctl enable mysqld
# systemctl start mysqld