📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の39版が非表示) | |||
| 9行目: | 9行目: | ||
もし、既にMariaDBがインストールされている場合は、MariaDBをアンインストールする。<br> | もし、既にMariaDBがインストールされている場合は、MariaDBをアンインストールする。<br> | ||
まず、インストールされているパッケージの確認するため、以下のコマンドを実行する。<br> | まず、インストールされているパッケージの確認するため、以下のコマンドを実行する。<br> | ||
# | # RHEL | ||
sudo rpm -qa | grep maria | sudo rpm -qa | grep maria | ||
| 15行目: | 15行目: | ||
sudo zypper search -i | grep maria | sudo zypper search -i | grep maria | ||
<br> | <br> | ||
RHELの場合、<code>mariadb-libs-<バージョン名>.el<バージョン名>.<アーキテクチャ名></code>と表示されるので、このパッケージをアンインストールする。<br> | |||
SUSEの場合、mariadbと表示されるので、このパッケージをアンインストールする。<br> | SUSEの場合、mariadbと表示されるので、このパッケージをアンインストールする。<br> | ||
# | # RHEL | ||
sudo | sudo dnf remove mariadb-libs | ||
sudo rm -rf /var/lib/mysql/ | sudo rm -rf /var/lib/mysql/ | ||
| 38行目: | 38行目: | ||
<br> | <br> | ||
まず、MySQL公式Webサイトからリポジトリを登録する必要がある。<br> | まず、MySQL公式Webサイトからリポジトリを登録する必要がある。<br> | ||
* | * RHEL | ||
*: [https://dev.mysql.com/downloads/repo/yum/ | *: [https://dev.mysql.com/downloads/repo/yum/ RHEL向けMySQL公式サイト] | ||
* SUSE | * SUSE | ||
*: [https://dev.mysql.com/downloads/repo/suse/ SUSE向けMySQL公式サイト] | *: [https://dev.mysql.com/downloads/repo/suse/ SUSE向けMySQL公式サイト] | ||
<br> | <br> | ||
または、以下のコマンドを実行して直接インストールする。<br> | または、以下のコマンドを実行して直接インストールする。<br> | ||
# | # RHEL 9 | ||
sudo | sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm | ||
# | # RHEL 8 | ||
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8- | sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-5.noarch.rpm | ||
# SUSE | # SUSE 15 | ||
sudo zypper install https://dev.mysql.com/get/mysql80-community-release-sl15- | sudo zypper install https://dev.mysql.com/get/mysql80-community-release-sl15-6.noarch.rpm | ||
sudo rpm --import /etc/RPM-GPG-KEY-mysql-2022 # MySQLリポジトリのパッケージの署名チェックに使用するMySQL製品用のGnuPGキーをシステムにインポートする | sudo rpm --import /etc/RPM-GPG-KEY-mysql-2022 # MySQLリポジトリのパッケージの署名チェックに使用するMySQL製品用のGnuPGキーをシステムにインポートする | ||
sudo zypper refresh | sudo zypper refresh | ||
または | または | ||
sudo rpm -ivh mysql80-community-release-sl15- | sudo rpm -ivh mysql80-community-release-sl15-6.noarch.rpm | ||
sudo rpm --import /etc/RPM-GPG-KEY-mysql-2022 # MySQLリポジトリのパッケージの署名チェックに使用するMySQL製品用のGnuPGキーをシステムにインポートする | sudo rpm --import /etc/RPM-GPG-KEY-mysql-2022 # MySQLリポジトリのパッケージの署名チェックに使用するMySQL製品用のGnuPGキーをシステムにインポートする | ||
sudo zypper refresh | sudo zypper refresh | ||
| 62行目: | 62行目: | ||
<br> | <br> | ||
リポジトリが追加されたかどうかは、以下のコマンドで確認できる。<br> | リポジトリが追加されたかどうかは、以下のコマンドで確認できる。<br> | ||
# | # RHEL | ||
sudo | sudo dnf repolist all | grep mysql | ||
# SUSE | # SUSE | ||
| 74行目: | 74行目: | ||
==== リポジトリを追加してインストール ==== | ==== リポジトリを追加してインストール ==== | ||
インストールを行う前に、パッケージのバージョンを確認する。<br> | インストールを行う前に、パッケージのバージョンを確認する。<br> | ||
# | # RHEL | ||
sudo | sudo dnf info mysql-community-server | ||
# SUSE | # SUSE | ||
| 83行目: | 83行目: | ||
インストールの途中において、MySQLのGPG公開鍵が無いというメッセージが表示されるが、<br> | インストールの途中において、MySQLのGPG公開鍵が無いというメッセージが表示されるが、<br> | ||
インストール時にGPG公開鍵も同時にインストールされるので、そのまま続ける。<br> | インストール時にGPG公開鍵も同時にインストールされるので、そのまま続ける。<br> | ||
# | # RHEL | ||
sudo | sudo dnf install mysql-community-server | ||
# SUSE | # SUSE | ||
| 93行目: | 93行目: | ||
<br> | <br> | ||
最後に、自動起動の設定をしてMySQLを起動する。<br> | 最後に、自動起動の設定をしてMySQLを起動する。<br> | ||
# RHEL | |||
sudo systemctl enable mysqld | sudo systemctl enable mysqld | ||
sudo systemctl start mysqld | sudo systemctl start mysqld | ||
# SUSE | |||
sudo systemctl enable mysql | |||
sudo systemctl start mysql | |||
<br> | <br> | ||
==== ソースコードからインストール ==== | ==== ソースコードからインストール ==== | ||
ビルドに必要なライブラリをインストールする。<br> | ビルドに必要なライブラリをインストールする。<br> | ||
sudo zypper install cmake git glibc-devel ncurses-devel perl perl-Data-Dumper | # SUSE | ||
sudo zypper install bison make cmake ninja git glibc-devel ncurses-devel perl-Data-Dump perl-Data-Dump-Streamer perl-Data-Dumper-Concise krb5-devel \ | |||
perl libtirpc3 libtirpc-devel rpcgen liblz4-devel libzstd-devel protobuf-devel libicu-devel \ | |||
libevent-devel libnuma-devel libfido2-devel libudev-devel systemd-devel doxygen \ | |||
libopenssl-devel libopenssl-1_1-devel # OpenSSL 1 を使用する場合 | |||
valgrind-devel # Valgrindを使用する場合 (Valgrindとは、LinuxにおけるC++のメモリリーク等の検知ツールのことである) | |||
<br> | <br> | ||
[https://downloads.mysql.com/archives/community/ MySQLの公式Webサイト]にアクセスして、MySQLのソースコードをダウンロードする。<br> | [https://downloads.mysql.com/archives/community/ MySQLの公式Webサイト]にアクセスして、MySQLのソースコードをダウンロードする。<br> | ||
| 104行目: | 114行目: | ||
[Product Version]は、インストールするMySQLのバージョンを選択、[Operating System]では"Source Code"を選択する。<br> | [Product Version]は、インストールするMySQLのバージョンを選択、[Operating System]では"Source Code"を選択する。<br> | ||
表示されるリストから、最も下欄にある"mysql-boost-<バージョン>.tar.gz"をダウンロードする。<br> | 表示されるリストから、最も下欄にある"mysql-boost-<バージョン>.tar.gz"をダウンロードする。<br> | ||
<u>MySQL 5.7.5からBoostライブラリが必要になったため、Boostライブラリ同梱のものをダウンロードすること。</u> | <br> | ||
<u>MySQL 5.7.5からBoostライブラリが必要になったため、Boostライブラリ同梱のものをダウンロードすること。</u><br> | |||
<u>ただし、MySQL 8.3以降からBoostライブラリは不要になっている。</u><br> | |||
<br> | <br> | ||
または、<code>wget</code>コマンドを使用して直接ダウンロードする。<br> | または、<code>wget</code>コマンドを使用して直接ダウンロードする。<br> | ||
| 117行目: | 129行目: | ||
<br> | <br> | ||
MySQLをビルドおよびインストールする。<br> | MySQLをビルドおよびインストールする。<br> | ||
# MySQL 8.2以前 | |||
cmake .. \ | cmake .. \ | ||
-DCMAKE_INSTALL_PREFIX=<MySQLのインストールディレクトリ> \ | -DCMAKE_C_COMPILER=<GCC 8.1以降のgcc実行ファイルのパス> \ | ||
-DDEFAULT_CHARSET=utf8mb4 \ | -DCMAKE_CXX_COMPILER=<GCC 8.1以降のg++実行ファイルのパス> \ | ||
-DWITH_EXTRA_CHARSETS=all \ | -DCMAKE_BUILD_TYPE=Release \ | ||
-DCMAKE_INSTALL_PREFIX=<MySQLのインストールディレクトリ> \ | |||
-DDEFAULT_CHARSET=utf8mb4 \ | |||
-DWITH_EXTRA_CHARSETS=all \ | |||
-DDEFAULT_COLLATION=utf8mb4_general_ci \ | |||
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ | |||
-DSYSCONFDIR=<MySQLのインストールディレクトリ> \ | |||
-DMYSQL_DATADIR=<MySQLのインストールディレクトリ>/data \ | |||
-DWITH_BOOST=../boost \ # MySQL 8.2以前の場合 | |||
-DWITH_SYSTEMD=ON \ # Systemdサービスを使用する場合 | |||
-DWITH_VALGRIND=ON # Valgrindを使用する場合 (Valgrindとは、LinuxにおけるC++のメモリリーク等の検知ツールのことである) | |||
make -j $(nproc) | |||
make install | |||
# または | |||
cmake .. -G Ninja \ | |||
-DCMAKE_C_COMPILER=<GCC 8.1以降のgcc実行ファイルのパス> \ | |||
-DCMAKE_CXX_COMPILER=<GCC 8.1以降のg++実行ファイルのパス> \ | |||
-DCMAKE_BUILD_TYPE=Release \ | |||
-DCMAKE_INSTALL_PREFIX=<MySQLのインストールディレクトリ> \ | |||
-DDEFAULT_CHARSET=utf8mb4 \ | |||
-DWITH_EXTRA_CHARSETS=all \ | |||
-DDEFAULT_COLLATION=utf8mb4_general_ci \ | -DDEFAULT_COLLATION=utf8mb4_general_ci \ | ||
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ | -DWITH_INNOBASE_STORAGE_ENGINE=1 \ | ||
-DSYSCONFDIR=<MySQLのインストールディレクトリ> \ | -DSYSCONFDIR=<MySQLのインストールディレクトリ> \ | ||
-DMYSQL_DATADIR=<MySQLのインストールディレクトリ>/data \ | -DMYSQL_DATADIR=<MySQLのインストールディレクトリ>/data \ | ||
-DWITH_BOOST=../boost \ | -DWITH_BOOST=../boost \ # MySQL 8.2以前の場合 | ||
- | -DWITH_SYSTEMD=ON \ # Systemdサービスを使用する場合 | ||
- | -DWITH_VALGRIND=ON # Valgrindを使用する場合 (Valgrindとは、LinuxにおけるC++のメモリリーク等の検知ツールのことである) | ||
ninja -C . | |||
ninja -C . install | |||
<br> | <br> | ||
/<MySQLのインストールディレクトリ>/libディレクトリから/<MySQLのインストールディレクトリ>/lib64ディレクトリへ、シンボリックリンクを作成する。<br> | /<MySQLのインストールディレクトリ>/libディレクトリから/<MySQLのインストールディレクトリ>/lib64ディレクトリへ、シンボリックリンクを作成する。<br> | ||
| 141行目: | 176行目: | ||
mkdir <MySQLのインストールディレクトリ>/tmp | mkdir <MySQLのインストールディレクトリ>/tmp | ||
mkdir <MySQLのインストールディレクトリ>/logs | mkdir <MySQLのインストールディレクトリ>/logs | ||
<br> | <br> | ||
次に、MySQLのデータディレクトリを初期化する。(MySQL 5.7.6以降、mysql_install_dbは廃止されていることに注意する)<br> | 次に、MySQLのデータディレクトリを初期化する。(MySQL 5.7.6以降、mysql_install_dbは廃止されていることに注意する)<br> | ||
<br> | <br> | ||
===== Systemdサービスユニットファイルの作成 ===== | |||
MySQLをソースコードからインストールした時、<br> | |||
/<MySQLのインストールディレクトリ>/ | SystemdサービスからMySQLを起動および停止する場合は、Systemdサービスユニットファイルを作成する。<br> | ||
<br> | |||
作成するファイルを以下に示す。<br> | |||
* mysqld.serviceファイル | |||
* mysqld@.serviceファイル | |||
<br> | |||
* システム全体で使用する場合 | |||
*: /etc/systemd/systemディレクトリ | |||
* 各ユーザで使用する場合 (ただし、各ユーザごとに使用する場合は、特権ポート0〜1023番ポートは使用できない) | |||
*: ~/.config/systemd/userディレクトリ | |||
<br> | |||
# mysqld.serviceファイル | |||
[Unit] | |||
Description=MySQL Server | |||
Documentation=man:mysqld(8) | |||
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html | |||
After=network-online.target | |||
Wants=network-online.target | |||
After=syslog.target | |||
[Install] | |||
WantedBy=multi-user.target | |||
[Service] | |||
Type=notify | |||
# Disable service start and stop timeout logic of systemd for mysqld service. | |||
TimeoutSec=0 | |||
# Execute pre and post scripts as root | |||
# hence, + prefix is used | |||
# Needed to create system tables | |||
ExecStartPre=+/<MySQLのインストールディレクトリ>/bin/mysqld_pre_systemd | |||
# Start main service | |||
ExecStart=/<MySQLのインストールディレクトリ>/bin/mysqld $MYSQLD_OPTS | |||
# Use this to switch malloc implementation | |||
EnvironmentFile=-/etc/sysconfig/mysql | |||
# Sets open_files_limit | |||
LimitNOFILE = 10000 | |||
Restart=on-failure | |||
RestartPreventExitStatus=1 | |||
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart. | |||
Environment=MYSQLD_PARENT_PID=1 | |||
PrivateTmp=false | |||
PIDFile=/<MySQLのインストールディレクトリ>/tmp/mysqld.pid | |||
<br> | |||
# mysqld@.serviceファイル | |||
[Unit] | |||
Description=MySQL Server | |||
Documentation=man:mysqld(8) | |||
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html | |||
After=network-online.target | |||
Wants=network-online.target | |||
After=syslog.target | |||
[Install] | |||
WantedBy=multi-user.target | |||
[Service] | |||
Type=notify | |||
# Disable service start and stop timeout logic of systemd for mysqld service. | |||
TimeoutSec=0 | |||
# Execute pre and post scripts as root | |||
# hence, + prefix is used | |||
# Needed to create system tables | |||
ExecStartPre=+/<MySQLのインストールディレクトリ>/bin/mysqld_pre_systemd %I | |||
# Start main service | |||
ExecStart=/<MySQLのインストールディレクトリ>/bin/mysqld --defaults-group-suffix=@%I $MYSQLD_OPTS | |||
# Use this to switch malloc implementation | |||
EnvironmentFile=-/etc/sysconfig/mysql | |||
# Sets open_files_limit | |||
LimitNOFILE = 10000 | |||
Restart=on-failure | |||
RestartPreventExitStatus=1 | |||
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart. | |||
Environment=MYSQLD_PARENT_PID=1 | |||
PrivateTmp=false | |||
<br> | <br> | ||
===== MySQLの設定ファイルの作成 ===== | |||
MySQLのインストールディレクトリに、MySQLの設定ファイルであるmy.cnfファイルを作成する。<br> | |||
<u>my.cnfファイルの設定内容については、[[インストール - MySQL8#my.cnfファイルのテンプレート]]のセクションを参照すること。</u><br> | |||
vi /<MySQLのインストールディレクトリ>/my.cnf | vi /<MySQLのインストールディレクトリ>/my.cnf | ||
<br> | <br> | ||
作成したmy. | 作成したmy.cnfファイルを、以下に示すように編集する。<br> | ||
cd <MySQLのインストールディレクトリ> | |||
# my.cnf : ポートの変更 | # my.cnf : ポートの変更 | ||
sed -i -e "s/ | sed -i -e "s/PORT_NO/<任意のポート番号 例. 53306>/g" my.cnf | ||
# my. | # my.cnfc: ユーザ名の変更 | ||
sed -i -e "s/ | sed -i -e "s/USER_NAME/<任意のユーザ名 例. mysql>/g" my.cnf | ||
# my. | # my.cnfm: MySQLのデータディレクトリの変更 | ||
sed -i -e "s/ | sed -i -e "s/MYSQL_DATA_BASE_DIR/<MySQLのインストールディレクトリ 例. \/home\/user\/InstallSoftware\/MySQL>/g" /my.cnf | ||
# my.cnf : 文字コードの変更 | # my.cnf : 文字コードの変更 | ||
sed -i -e "s/ | sed -i -e "s/CHARACTER_SET/utf8mb4/g" my.cnf | ||
sed -i -e "s/# collation-server = utf8mb4_bin/collation-server = utf8mb4_bin/g" | sed -i -e "s/# collation-server = utf8mb4_bin/collation-server = utf8mb4_bin/g" my.cnf | ||
# my. | # my.cnff: パスワードの有効期限を無期限に延長する場合 | ||
sed -i -e "s/# default_password_lifetime = 0/default_password_lifetime = 0/g" /<MySQLのインストールディレクトリ>/my. | sed -i -e "s/# default_password_lifetime = 0/default_password_lifetime = 0/g" my.cnf | ||
# my.cnf.: パスワード認証をレガシーに設定する場合 | |||
sed -i -e "s/# default_authentication_plugin = mysql_native_password/default_authentication_plugin = mysql_native_password/g" my.cnf | |||
<br> | |||
===== MySQLの初期化 ===== | |||
MySQLの初期化を行う。<br> | |||
# MySQLの初期化 | |||
/<MySQLのインストールディレクトリ>/bin/mysqld --initialize \ | |||
--user=<my.cnfファイルのuserキーの値(ユーザ名)> \ # 例. mysql等 | |||
--basedir=<MySQLのインストールディレクトリ> \ | |||
--datadir=/<MySQLのインストールディレクトリ>/data | |||
<br> | |||
この時、my.cnfファイルの[log_error]セクションに設定したファイル(例. /<MySQLインストールディレクトリ>/logs/mysql_error.logファイル)に、<br> | |||
MySQLのrootユーザのパスワードが保存される。<br> | |||
# rootユーザのパスワードを確認 | |||
grep "temporary password" <[log_error]セクションに設定したファイル> | |||
例. grep "temporary password" /<MySQLインストールディレクトリ>/logs/mysql_error.log | |||
<br> | <br> | ||
===== MySQLの起動 ===== | |||
MySQLを起動する。<br> | MySQLを起動する。<br> | ||
/<MySQLのインストールディレクトリ>/support-files/mysql.server start | /<MySQLのインストールディレクトリ>/support-files/mysql.server start | ||
<br> | <br> | ||
===== MySQLのユーザの設定 ===== | |||
MySQLの初期設定を行う。<br> | MySQLの初期設定を行う。<br> | ||
# rootユーザで接続する | # rootユーザで接続する | ||
| 192行目: | 341行目: | ||
/<MySQLのインストールディレクトリ>/binディレクトリにあるmysql_secure_installationを実行する。<br> | /<MySQLのインストールディレクトリ>/binディレクトリにあるmysql_secure_installationを実行する。<br> | ||
詳細は、[[インストール - MySQL8#MySQLの初期設定]]を参照すること。<br> | 詳細は、[[インストール - MySQL8#MySQLの初期設定]]を参照すること。<br> | ||
/<MySQLのインストールディレクトリ>/bin/mysql_secure_installation | |||
<br> | <br> | ||
===== MySQLの停止 ===== | |||
MySQLを停止するには、以下のコマンドを実行する。<br> | MySQLを停止するには、以下のコマンドを実行する。<br> | ||
/<MySQLのインストールディレクトリ>/support-files/mysql.server stop | <u>この時、/var/lock/subsys/mysqlファイルを削除する必要があるため、スーパーユーザ権限で行う必要がある。</u><br> | ||
sudo /<MySQLのインストールディレクトリ>/support-files/mysql.server stop | |||
<br><br> | |||
== MySQL Router == | |||
MySQL Routerは、MySQL InnoDB ClusterやInnoDB ReplicaSetで使用可能であり、ロードバランスや障害発生時のフェイルオーバーに対応したルーティングを透過的に実現するミドルウェア製品である。<br> | |||
詳細は、[[MySQL - MySQL Router]]を参照すること。<br> | |||
<br><br> | |||
== my.cnfファイル == | |||
my.cnfファイルの各セクションの意味と役割を以下に示す。<br> | |||
<br> | |||
* [mysqld]セクション | |||
*: MySQLサーバデーモン (バックグラウンドで動作するサーバプロセス) の設定を定義する。 | |||
*: サーバの動作に関する全ての主要な設定 (メモリ、キャッシュ、ログ、文字コード等) が含まれる。 | |||
*: このセクションの設定はサーバ全体に影響を与える。 | |||
*: 例: innodb_buffer_pool_sizeキー、character-set-serverキー、portキー等 | |||
<br> | |||
* [mysql]セクション | |||
*: MySQLコマンドラインクライアント (mysqlコマンド) 特有の設定を定義する。 | |||
*: コマンドラインでMySQLに接続する際に使用される設定である。 | |||
*: 主に、クライアントツールの動作に関する設定が含まれる。 | |||
*: 例: default-character-setキー、promptキー、auto-vertical-outputキー等 | |||
<br> | |||
* [client]セクション | |||
*: 全てのMySQLクライアントプログラム共通の設定を定義する。 | |||
*: mysqlコマンドのみではなく、mysqldumpコマンド、mysqlimportコマンド、mysqladminコマンド等のクライアントツール全てに適用される。 | |||
*: 主に、接続関連の設定が含まれる。 | |||
*: portキー、socketキー、default-character-setキー等 | |||
<br> | |||
* mysqldコマンドは、[mysqld]セクションの設定を使用する。 | |||
* mysqlコマンドは、[mysql]セクションおよび[client]セクションの両方の設定を使用する。 | |||
* mysqldumpコマンド等のその他のクライアントツールは、 [client]セクションの設定を使用する。 | |||
<br> | |||
# 共通の接続設定は[client]セクションにまとめる。 | |||
# [mysql]セクションには、CLI固有の設定のみを記述する。 | |||
# [mysqld]セクションにはサーバ固有の設定を記述する。 | |||
<br><br> | <br><br> | ||
| 200行目: | 388行目: | ||
my.cnfファイルのテンプレートを以下に記述する。<br> | my.cnfファイルのテンプレートを以下に記述する。<br> | ||
[mysqld] | [mysqld] | ||
port = | port = PORT_NO | ||
user = | user = USER_NAME | ||
basedir = | basedir = MYSQL_DATA_BASE_DIR | ||
datadir = | datadir = MYSQL_DATA_BASE_DIR/data | ||
tmpdir = | tmpdir = MYSQL_DATA_BASE_DIR/tmp | ||
socket = | socket = MYSQL_DATA_BASE_DIR/tmp/mysql.sock | ||
pid-file = | pid-file = MYSQL_DATA_BASE_DIR/logs/mysqld.pid | ||
log-error = | log-error = MYSQL_DATA_BASE_DIR/logs/mysql_error.log | ||
general_log_file = MYSQL_DATA_BASE_DIR/logs/mysql.log | |||
general_log = 1 | |||
long_query_time = 2 | |||
log-queries-not-using-indexes | |||
# Windows / Mac環境のみ | # Windows / Mac環境のみ | ||
| 213行目: | 405行目: | ||
# 文字コード | # 文字コード | ||
character-set-server = | character-set-server = CHARACTER_SET | ||
# utf8mb4を使う場合 | # utf8mb4を使う場合 | ||
collation-server = utf8mb4_bin | |||
# SQLモード | # SQLモード | ||
| 226行目: | 418行目: | ||
# max_allowed_packet = 16MB | # max_allowed_packet = 16MB | ||
# MySQL 5.6.6 以降はデフォルトでON : InnoDBをテーブルごとにファイルを分ける | # MySQL 5.6.6 以降はデフォルトでON: InnoDBをテーブルごとにファイルを分ける | ||
innodb_file_per_table = 1 | innodb_file_per_table = 1 | ||
| 258行目: | 450行目: | ||
[mysql] | [mysql] | ||
port = | port = PORT_NO | ||
user = | user = USER_NAME | ||
socket = | socket = MYSQL_DATA_BASE_DIR/tmp/mysql.sock | ||
default-character-set = | default-character-set = CHARACTER_SET | ||
# 例: プロンプトの設定やその他のCLI固有の設定 | |||
prompt = '\u@\h [\d]> ' | |||
auto-vertical-output = 1 | |||
[client] | [client] | ||
port = | port = PORT_NO | ||
user = | user = USER_NAME | ||
socket = | socket = MYSQL_DATA_BASE_DIR/tmp/mysql.sock | ||
default-character-set = utf8mb4 | |||
<br><br> | <br><br> | ||
| 325行目: | 500行目: | ||
<br> | <br> | ||
MySQLを再起動するため、以下のコマンドを実行する。<br> | MySQLを再起動するため、以下のコマンドを実行する。<br> | ||
# RHEL | |||
sudo systemctl restart mysqld | sudo systemctl restart mysqld | ||
# SUSE | |||
sudo systemctl restart mysql | |||
<br> | <br> | ||
もし、rootユーザのパスワードを変更する場合、MySQLにログインして以下のコマンドを実行する。<br> | もし、rootユーザのパスワードを変更する場合、MySQLにログインして以下のコマンドを実行する。<br> | ||
| 443行目: | 622行目: | ||
<br> | <br> | ||
MySQLを再起動をして設定を反映する。<br> | MySQLを再起動をして設定を反映する。<br> | ||
# RHEL | |||
sudo systemctl restart mysqld | |||
# SUSE | |||
sudo systemctl restart mysql | sudo systemctl restart mysql | ||
<br> | <br> | ||
| 460行目: | 643行目: | ||
<br> | <br> | ||
MySQLを再起動して設定を反映させる。<br> | MySQLを再起動して設定を反映させる。<br> | ||
# RHEL | |||
sudo systemctl restart mysqld | |||
# SUSE | |||
sudo systemctl restart mysql | sudo systemctl restart mysql | ||
<br> | <br> | ||
| 513行目: | 700行目: | ||
MySQL WorkBenchをインストールする。<br> | MySQL WorkBenchをインストールする。<br> | ||
make install DESTDIR=<MySQL WorkBenchのインストールディレクトリ> | make install DESTDIR=<MySQL WorkBenchのインストールディレクトリ> | ||
<br><br> | |||
== トラブルシューティング == | |||
==== エラー : Public Key Retrieval is not allowed ==== | |||
クライアントがサーバから自動的に公開鍵を要求できるように、mysql-connectorに<code>allowPublicKeyRetrieval=true</code>オプションを追加する必要がある。<br> | |||
これは、悪意のあるプロキシが平文のパスワードを取得するためのMITM攻撃を行う可能性があるため、標準では<code>false</code>になっており、明示的に有効にする必要がある。<br> | |||
<br> | |||
また、テストや開発のために使用する場合は、<code>useSSL=false</code>オプションも付加して接続してもよい。<br> | |||
<br> | |||
詳細は、[https://mysql-net.github.io/MySqlConnector/connection-options/ MySQLの公式Webサイト]を参照すること。<br> | |||
# 接続コマンド | |||
jdbc:mysql://<Webサーバのホスト名>:<MySQLのポート番号>/db?allowPublicKeyRetrieval=true&useSSL=false | |||
# 例 | |||
jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false | |||
<br><br> | <br><br> | ||
== DBeaver == | == DBeaver == | ||
DBeaverは、Oracle、SQLServer、MySQL、MariaDB、SQLite等の計42種類のドライバに対応したSQLクライアントツールである。<br> | DBeaverは、Oracle、SQLServer、MySQL、MariaDB、SQLite等の計42種類のドライバに対応したSQLクライアントツールである。<br> | ||
DBeaverの詳細を知りたい場合は、[[インストール - DBeaver|インストール - DBeaverのページ]]を確認すること。<br> | |||
<br> | <br> | ||
<u>※注意</u><br> | <u>※注意</u><br> | ||
| 560行目: | 733行目: | ||
<br> | <br> | ||
最後に、[接続構成]画面下の[OK]ボタンを押下する。<br> | 最後に、[接続構成]画面下の[OK]ボタンを押下する。<br> | ||
<br><br> | |||
== Adminer == | |||
PHPとMySQLやPostgreSQLと連携する時、データベースの内容をグラフィカルな環境で確認する場合、Adminerを使用すると便利である。<br> | |||
<br> | |||
Adminerは、インストール不要であり、PHPファイルが1つで導入が簡単である。<br> | |||
1つのファイルで、MySQL、PostgreSQL、SQLite、MS SQL、Oracle DB、SimpleDB、Elasticsearch、MongoDBに対応している。<br> | |||
<br> | |||
<u>ただし、PCにデータベースドライバの導入は別途必要であることに注意する。</u><br> | |||
<br> | |||
phpMyAdminやphpPgAdminは、導入に手間が掛かり、ブルートフォースアタックの対象になることもある。<br> | |||
<br> | |||
[https://www.adminer.org/en/ Adminerの公式Webサイト]にアクセスして、Adminer(PHPファイル)をダウンロードする。<br> | |||
ダウンロードしたファイルを、ドキュメントルート(/var/www/htmlディレクトリ等)に配置する。 (ファイル名は自由に変更してもよい)<br> | |||
<br><br> | <br><br> | ||
== phpMyAdmin == | == phpMyAdmin == | ||
==== パッケージ管理システムからインストール ==== | |||
===== phpMyAdminのインストール ===== | ===== phpMyAdminのインストール ===== | ||
常にコマンドラインから操作することは面倒であるので、Webブラウザから操作できるphpMyAdminをインストールする。<br> | 常にコマンドラインから操作することは面倒であるので、Webブラウザから操作できるphpMyAdminをインストールする。<br> | ||
PHPからMySQLを使用するために必要なパッケージが一式インストールできるので、phpMyAdminを使用する予定がなくても、<br> | PHPからMySQLを使用するために必要なパッケージが一式インストールできるので、phpMyAdminを使用する予定がなくても、<br> | ||
インストールしておくと便利である。<br> | インストールしておくと便利である。<br> | ||
# | # RHEL | ||
sudo | sudo dnf install epel-release | ||
sudo | sudo dnf install phpmyadmin php-pecl-mcrypt | ||
# SUSE | # SUSE | ||
sudo zypper install phpMyAdmin | sudo zypper install phpMyAdmin | ||
<br> | <br> | ||
===== phpMyAdminの設定 ===== | ===== phpMyAdminの設定 ===== | ||
まず、設定ファイルであるconfig.inc.phファイルを編集する。<br> | まず、設定ファイルであるconfig.inc.phファイルを編集する。<br> | ||
| 586行目: | 773行目: | ||
<br> | <br> | ||
設定ファイルはサンプルがあるので、それをコピーして編集する。<br> | 設定ファイルはサンプルがあるので、それをコピーして編集する。<br> | ||
sudo cp -a /usr/share/doc/phpMyAdmin- | sudo cp -a /usr/share/doc/phpMyAdmin-<バージョン>/config.sample.inc.php /etc/phpMyAdmin/config.inc.php | ||
sudo nano /etc/phpMyAdmin/config.inc.php | sudo nano /etc/phpMyAdmin/config.inc.php | ||
<br> | <br> | ||
ファイルの先頭のあたりに存在する<code>$cfg['blowfish_secret']</code>キーの値に、上記で作成したパスフレーズを入力する。<br> | |||
$cfg['blowfish_secret'] | |||
/** | /** | ||
* This is needed for cookie based authentication to encrypt password in | * This is needed for cookie based authentication to encrypt password in | ||
* cookie. Needs to be 32 chars long. | * cookie. Needs to be 32 chars long. | ||
*/ | */ | ||
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ | $cfg['blowfish_secret'] = <パスフレーズ>''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ | ||
<br> | <br> | ||
次に、phpMyAdmin. | 次に、phpMyAdmin.confファイルの設定を行う。<br> | ||
まず、アクセス権に関する設定を行う。( | まず、アクセス権に関する設定を行う。(この設定を行うことにより、phpMyAdminにアクセスできる)<br> | ||
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf | sudo nano /etc/httpd/conf.d/phpMyAdmin.conf | ||
16行目と30行目にある<code>Require local</code>の1つ下の行に以下の設定を追加する。<br> | |||
# Apache 2.4 | # Apache 2.4 | ||
Require ip 192.168.xxx.0/24 | Require ip 192.168.xxx.0/24 | ||
| 636行目: | 822行目: | ||
最後に、MySQLを再起動する。<br> | 最後に、MySQLを再起動する。<br> | ||
# RHEL | |||
sudo systemctl restart mysqld | sudo systemctl restart mysqld | ||
# SUSE | |||
sudo systemctl restart mysql | |||
<br> | <br> | ||
phpMyAdminにログインできるか確認する。<br> | phpMyAdminにログインできるか確認する。<br> | ||
<br> | |||
==== 手動でインストール ==== | |||
[https://www.phpmyadmin.net phpMyAdminの公式Webサイト]にアクセスして、phpMyAdminをダウンロードする。<br> | |||
ダウンロードしたファイルを解凍する。<br> | |||
unzip phpMyAdmin-<バージョン>-all-languages.zip | |||
mv phpMyAdmin-<バージョン>-all-languages phpMyAdmin | |||
<br> | |||
解凍したphpMyAdminのディレクトリを、Apache2またはNginXのドキュメントルートに移動する。<br> | |||
phpMyAdmin用の仮想ホストを構築していることが望ましい。<br> | |||
mv phpMyAdmin <Apache2またはNginXのドキュメントルート> | |||
cd /<Apache2またはNginXのドキュメントルート>/phpMyAdmin | |||
<br> | |||
phpMyAdminの設定を行う。<br> | |||
cp config.sample.inc.php config.inc.php | |||
vi config.inc.php | |||
<br> | |||
<syntaxhighlight lang="php"> | |||
# config.inc.phpファイル | |||
# 編集前 | |||
$cfg['Servers'][$i]['host'] = 'localhost'; | |||
# 編集後 | |||
$cfg['Servers'][$i]['host'] = '<ホスト名またはIPアドレス>:<MySQLのポート番号>'; | |||
// 例. $cfg['Servers'][$i]['host'] = '127.0.0.1:3306'; | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ: | [[カテゴリ:RHEL]][[カテゴリ:SUSE]] | ||