MariaDBでmax_connectionsをmy.cnfで設定できない?解決策を解説
MariaDBでmax_connectionsをmy.cnfで設定できない問題
[ERROR] Can't start server: bind to TCP/IP address: Address already in use (98)
これは、my.cnf
で設定されたmax_connections
が、OSの制限値よりも大きい場合に発生します。
解決策
この問題を解決するには、以下の方法があります。
OSの制限値を変更するには、以下のコマンドを使用します。
ulimit -n <max_connections>
MariaDBを起動時にmax_connections
を指定するには、以下のコマンドを使用します。
mysqld_safe --max_connections=<max_connections>
my.cnf
の設定を変更するには、以下の手順を行います。
my.cnf
ファイルを編集します。max_connections
の設定を探します。- 設定値をOSの制限値よりも小さく変更します。
- MariaDBを再起動します。
設定例
[mysqld]
max_connections=100
補足
max_connections
は、MariaDBが同時に処理できる接続数の最大値です。- OSの制限値は、OSによって異なります。
my.cnf
ファイルは、MariaDBの設定ファイルです。
注意事項
- OSの制限値を変更する前に、現在の設定値を確認してください。
max_connections
の設定値を小さくすると、接続待ちが発生する可能性があります。
OSの制限値を変更する
# OSの制限値を確認
ulimit -n
# OSの制限値を変更
ulimit -n 100
# MariaDBを起動
mysqld_safe --max_connections=100
my.cnfの設定を変更する
# my.cnfファイルを編集
vim /etc/my.cnf
# max_connectionsの設定を探し、設定値を変更
max_connections=100
# MariaDBを再起動
systemctl restart mariadb
注意事項
- サンプルコードは、CentOS 7.9を使用しています。
- 他のOSを使用する場合は、コマンドや設定ファイルの場所が異なる場合があります。
max_connectionsを設定する他の方法
MariaDBのコンソールに接続し、以下のコマンドを実行します。
SET GLOBAL max_connections=100;
MariaDBの設定ファイル (/etc/my.cnf.d/mariadb.cnf
など) を編集し、以下の設定を追加します。
[mysqld]
max_connections=100
MariaDBのGUIツールを使用する
MySQL WorkbenchなどのGUIツールを使用して、max_connections
を設定することができます。
注意事項
- 上記の方法を使用する場合は、MariaDBを再起動する必要はありません。
- 設定ファイルを変更する場合は、構文エラーがないことを確認してください。
max_connections
を設定するには、いくつかの方法があります。
- 設定を変更する場合は、注意事項をよく読んでください。
mysql mariadb