Linux に MariaDB または MySQL をインストールする
Linux システムでオープン ソース SQL データベースの使用を開始します。
MariaDB と MySQL はどちらも SQL を使用するオープンソース データベースであり、同じ元のコードベースを共有します。 MariaDB は MySQL のドロップイン代替品であるため、同じコマンド (mysql
) を使用して MySQL データベースと MariaDB データベースを操作できます。したがって、この記事は MariaDB と MySQL に同様に当てはまります。
MariaDB をインストールする
Linux ディストリビューションのパッケージ マネージャーを使用して MariaDB をインストールできます。ほとんどのディストリビューションでは、MariaDB はサーバー パッケージとクライアント パッケージに分割されています。サーバー パッケージはデータベース「エンジン」を提供します。これは、バックグラウンドで (通常は物理サーバー上で) 実行され、データ入力またはデータ出力のリクエストをリッスンする MariaDB の一部です。クライアント パッケージには、サーバーとの通信に使用できるコマンド mysql
が用意されています。
RHEL、Fedora、CentOS などの場合:
$ sudo dnf install mariadb mariadb-server
Debian、Ubuntu、Elementary などの場合:
$ sudo apt install mariadb-client mariadb-server
他のシステムでは MariaDB が異なる方法でパッケージ化されている場合があるため、ソフトウェア リポジトリを検索して、ディストリビューションのメンテナがそれをどのように提供しているかを知る必要がある場合があります。
MariaDB を開始する
MariaDB は、部分的にはデータベース サーバーとして機能するように設計されているため、あるコンピューター上で実行し、別のコンピューターから管理することができます。それを実行しているコンピュータにアクセスできる限り、mysql
コマンドを使用してデータベースを管理できます。この記事を書いているとき、私はローカル コンピューターで MariaDB を実行しましたが、リモート システムでホストされている MariaDB データベースを操作する可能性も同じくらいあります。
MariaDB を開始する前に、初期データベースを作成する必要があります。 MariaDB のファイル構造を初期化するときに、MariaDB で使用するユーザーを定義する必要があります。デフォルトでは、MariaDB は現在のユーザーを使用しますが、おそらく専用のユーザー アカウントを使用する必要があるでしょう。おそらくパッケージ マネージャーがシステム ユーザーとグループを設定したと思われます。 grep
を使用して、mysql
グループがあるかどうかを確認します。
$ grep mysql /etc/group
mysql:x:27:
/etc/passwd
で専用ユーザーを探すこともできますが、通常、グループがあるところにはユーザーも存在します。専用の mysql
ユーザーおよびグループがない場合は、/etc/group
を調べて明らかな代替手段 (mariadb
など) を探します。それができない場合は、ディストリビューションのドキュメントを読んで、MariaDB がどのように実行されるかを確認してください。
インストールで mysql
を使用すると仮定して、データベース環境を初期化します。
$ sudo mysql_install_db --user=mysql
Installing MariaDB/MySQL system tables in '/var/lib/mysql'...
OK
[...]
このステップの結果により、MariaDB を構成するために実行する必要がある次のタスクが明らかになります。
PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:
'/usr/bin/mysqladmin' -u root password 'new-password'
'/usr/bin/mysqladmin' -u root -h $(hostname) password 'new-password'
Alternatively you can run:
'/usr/bin/mysql_secure_installation'
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
ディストリビューションの init システムを使用して MariaDB を起動します。
$ sudo systemctl start mariadb
MariaDB サーバーがブート時に起動できるようにするには:
$ sudo systemctl enable --now mariadb
通信する MariaDB サーバーができたので、そのサーバーのパスワードを設定します。
mysqladmin -u root password 'myreallysecurepassphrase'
mysqladmin -u root -h $(hostname) password 'myreallysecurepassphrase'
最後に、このインストールを運用サーバーで使用する場合は、運用を開始する前に mysql_secure_installation
コマンドを実行します。