「インストール - MariaDB」の版間の差分
58行目: | 58行目: | ||
sudo zypper install MariaDB-server MariaDB-client galera-4 MariaDB-shared MariaDB-backup MariaDB-common | sudo zypper install MariaDB-server MariaDB-client galera-4 MariaDB-shared MariaDB-backup MariaDB-common | ||
<br> | <br> | ||
===== パッケージ管理システムからインストール(非推奨) | ==== ソースコードからインストール ==== | ||
MariaDBのビルドに必要なライブラリをダウンロードする。<br> | |||
sudo zypper install libcurl-devel snappy-devel libxml2-devel libpmem-devel judy-devel \ | |||
liblz4-devel lzo-devel lzlib-devel lzma-sdk-devel libnotify-devel systemd-devel \ | |||
libboost_system1_66_0 libboost_thread1_66_0 libboost_headers1_66_0-devel | |||
<br> | |||
[http://downloads.mariadb.org/ MariaDBの公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br> | |||
または、[https://github.com/MariaDB/server/tags MariaDBのGithub]からソースコードをダウンロードする。<br> | |||
<br> | |||
ダウンロードしたファイルを解凍する。<br> | |||
tar xf mariadb-<バージョン> | |||
cd mariadb-<バージョン> | |||
<br> | |||
ビルドディレクトリを作成する。<br> | |||
mkdir build-mariadb && cd build-mariadb | |||
<br> | |||
MariaDBをビルドおよびインストールする。<br> | |||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<MariaDBのインストールディレクトリ> .. | |||
make -j $(nproc) | |||
make install | |||
<br> | |||
==== パッケージ管理システムからインストール(非推奨) ==== | |||
MariaDBをインストールするため、以下のコマンドを実行する。<br> | MariaDBをインストールするため、以下のコマンドを実行する。<br> | ||
sudo zypper install mariadb mariadb-tools | sudo zypper install mariadb mariadb-tools |
2022年9月7日 (水) 08:44時点における版
概要
データベースサーバは、サーバ上のデータベースをクライアントから操作できるようにするためのサーバである。
ここでは、RDBのデータベースサーバであるMariaDB 10.5.2(2020/4/26現在の最新版)を例に挙げる。
CentOSおよびSUSEでは、MariaDBのリポジトリを追加して、MariaDBをインストールすることを推奨する。
また、インストールの詳細に関しては、こちらの公式Webサイトを参照すること。
MariaDBのインストール
CentOS
リポジトリを追加してインストール(推奨)
MariaDBのリポジトリを追加するために、/etc/yum.repos.dディレクトリにMariaDB.repoファイルを作成する。
MariaDB.repoファイルには、リポジトリにあるパッケージのデジタル署名を検証するために使用されるGPG公開鍵を、自動的にフェッチするgpgkey行を含む。
これにより、yumおよびdnf、rpmユーティリティは、インストールするパッケージの整合性を検証できる。
sudo vi /etc/yum.repos.d/MariaDB.repo
# /etc/yum.repos.d/MariaDB.repoファイル [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.5.2/centos7-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
初めて、MariaDBのリポジトリからインストールする場合、GPG公開鍵をインポートするように要求される。
rpmユーティリティを使用して、このGPG公開鍵を手動でインポートする。
sudo rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
リポジトリの追加および設定を行った後、以下のコマンドを実行してMariaDBをインストールする。
(追加したリポジトリには、MariaDBサーバ / クライアントの他に、ユーティリティやライブラリ、プラグイン等、関連するソフトウェアも含まれる)
sudo yum install MariaDB-server MariaDB-client galera-4 MariaDB-shared MariaDB-backup MariaDB-common
正常にインストールされているか確認する。
mariadb –version
パッケージ管理システムからインストール(非推奨)
MariaDBをインストールするため、以下のコマンドを実行する。
sudo yum install mariadb-server
正常にインストールされているか確認する。
mariadb –version
SUSE
リポジトリを追加してインストール(推奨)
次のコマンドを実行して、MariaDBのリポジトリを追加する。
# openSUSEの場合 sudo zypper addrepo --gpgcheck --refresh https://yum.mariadb.org/10.5.2/opensuse/15/x86_64/ mariadb # SLEの場合 sudo zypper addrepo --gpgcheck --refresh https://yum.mariadb.org/10.5.2/sles/15/x86_64/ mariadb
次に、リポジトリのGPGキーを取得する。
sudo rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB sudo zypper --gpg-auto-import-keys refresh
リポジトリを追加および設定を行った後、以下のコマンドを実行してMariaDBをインストールする。
(追加したリポジトリには、MariaDBサーバ / クライアントの他に、ユーティリティやライブラリ、プラグイン等、関連するソフトウェアも含まれる)
sudo zypper install MariaDB-server MariaDB-client galera-4 MariaDB-shared MariaDB-backup MariaDB-common
ソースコードからインストール
MariaDBのビルドに必要なライブラリをダウンロードする。
sudo zypper install libcurl-devel snappy-devel libxml2-devel libpmem-devel judy-devel \ liblz4-devel lzo-devel lzlib-devel lzma-sdk-devel libnotify-devel systemd-devel \ libboost_system1_66_0 libboost_thread1_66_0 libboost_headers1_66_0-devel
MariaDBの公式Webサイトにアクセスして、ソースコードをダウンロードする。
または、MariaDBのGithubからソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf mariadb-<バージョン> cd mariadb-<バージョン>
ビルドディレクトリを作成する。
mkdir build-mariadb && cd build-mariadb
MariaDBをビルドおよびインストールする。
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<MariaDBのインストールディレクトリ> .. make -j $(nproc) make install
パッケージ管理システムからインストール(非推奨)
MariaDBをインストールするため、以下のコマンドを実行する。
sudo zypper install mariadb mariadb-tools
正常にインストールされているか確認する。
mariadb –version
MariaDBの設定
次に、MariaDBの設定ファイル(my.cnfファイル)を開いて、[mysqld]セクションに以下の設定を追記する。
sudo vi /etc/my.cnf # /etc/my.cnfファイル [mysqld] character-set-server=utf8 # 追記
MariaDBの起動の設定を行う。
sudo systemctl enable mariadb sudo systemctl start mariadb
MariaDBのセキュリティを向上させるため、以下のコマンドを実行する。
sudo mysql_secure_installation
下記の説明が表示されるので、翻訳付きで説明する。
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! 注意: 実運用環境のすべての MariaDB サーバにおいて、当スクリプトのすべての処理を実行することが推奨されます! 各手順をよくお読みください! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. MariaDBにログインしてそれを安全にするには、rootユーザの現在のパスワードが必要です。 MariaDBをインストールした直後でrootパスワードをまだセットしていない場合、パスワードは空白であるため、そのままEnterキーを押してください。 Enter current password for root (enter for none): root の現在のパスワードを入力してください(未設定ならEnter) OK, successfully used password, moving on... パスワード認証に成功しました、処理を続行しています... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. root パスワードを設定することで、適切な認証なしではMariaDBのrootユーザにログインできなくなります。 You already have a root password set, so you can safely answer 'n'. すでにrootパスワードがセットされているので、「n」と回答しても安全です。 Change the root password? [Y/n] n root パスワードを変更しますか? ... skipping. ... スキップ By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. 既定で、MariaDBのインストール作業においては匿名ユーザを利用することができ、ユーザアカウントの作成なしで誰でもログインすることが できます。これは、インストールを若干スムーズに行うために存在し、テストのみで利用することが想定されています。 これらは、実運用環境に移行する前に削除する必要があります。 Remove anonymous users? [Y/n] y 匿名ユーザを削除しますか? ... Success! ... 成功しました! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. 通常、root ログインはlocalhostからの接続のみで許可されるべきです。それにより、ネットワークからrootパスワードを推測できないようになります。 Disallow root login remotely? [Y/n] y リモートからのrootログインを禁止しますか? ... Success! ... 成功しました! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. 既定で、MariaDBには、だれでもアクセス可能なtestという名前のデータベースが付属しています。 これもテストのみで利用されることが想定されており、実運用環境に移行する前に削除する必要があります。 Remove test database and access to it? [Y/n] y testデータベースとそのデータベースへのアクセスを削除しますか? - Dropping test database... - testデータベースを削除しています... ... Success! ... 成功しました! - Removing privileges on test database... - testデータベースに対する権限を削除しています... ... Success! ... 成功しました! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. 権限テーブルを再読み込みすると、ここまでのすべての変更をすぐに反映させることができます。 Reload privilege tables now? [Y/n] y 今すぐ権限テーブルを再読み込みしますか? ... Success! ... 成功しました! Cleaning up... クリーンアップしています... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. 完了しました! 以上のすべての処理を実行していれば、安全にMariaDBをインストールできているはずです。 Thanks for using MariaDB! MariaDBのご利用ありがとうございます!
MariaDBのユーザ登録
MariaDBにrootユーザで接続するため、以下のコマンドを実行する。
mysql -u root -p
上記で設定したMariaDBのrootパスワードを入力する。
Enter password:
ユーザ情報の一覧表示をするには、以下のクエリを発行する。
select user, host, password from mysql.user;
データベースの一覧表示をするには、以下のクエリを発行する。
show databases;
まず、全てのデータベースへの全てのアクセス権限を持った、新規ユーザsuseを登録する。
grant all privileges on *.* to suse@localhost identified by 'パスワード';
suseユーザの登録が成功したか確認する。
select user from mysql.user where user='centos';
suseユーザの登録をMariaDBサーバへ反映する。
flush privileges;
MariaDBからログアウトする。
exit
MariaDBにおけるデータベースの作成
MariaDBへログインする。
mysql -u <データベースユーザ名> -p <データベースユーザ名のパスワード>
D_Sampleデータベースを作成する。
create database <データベース名>;
D_Sample用データベースが作成できたか確認する。
show databases;
作成したデータベースへ接続する。
use <データベース名>;
テーブルを作成する。
create table <テーブル名>(employee_no int, first_name varchar(50), last_name varchar(50));
作成したテーブルを確認する。
show tables;
作成したテーブルにレコードを追加する。
insert into <テーブル名> values(1, '太郎', ‘山田’);
MariaDBからログアウトする。
exit
登録したユーザの削除
データベースユーザを削除する。
delete from mysql.user where user='<データベースユーザ名>' and host='localhost';
ユーザが削除されたかどうかを確認する。
select user from mysql.user where user='<データベースユーザ名>';
MariaDBサーバへ反映する。
flush privileges;
MariaDBからログアウトする。
exit
ユーザの権限を削除
データベースユーザから全てのデータベースへのアクセス権限を剥奪する。
revoke all privileges on *.* from <データベースユーザ名>@localhost;
MariaDBのアンインストール
まず、MariaDBを停止する。
MariaDBのステータスを確認して、起動していたら停止する。
sudo systemctl status mariadb sudo systemctl stop mariadb
MariaDBをアンインストールする。
sudo zypper remove mariadb mariadb-client mariadb-errormessages
最後に、不要なファイルを削除する。
下記に示す通り、削除されずに残っているファイルやディレクトリがあるので、手動で削除する。
- /var/lib/mysql
- デフォルトのデータファイル、ログファイルの格納先
- /etc/my.cnf.d
- オプションファイルの格納先
- /data
- 本環境では、このディレクトリにデータファイル、ログファイルの格納先を変更しているので、手動で削除する。
sudo rm -rf /var/lib/mysql sudo rm -rf /etc/my.cnf.d sudo rm -rf /data