web-dev-qa-db-ja.com

Centos 7のMariadbがmy.cnfに基づいて最大接続数を変更しない

My.cnf内の次の構成に従っていません。 Max_connectionsが151に戻ります。適切に使用したい専用のRAMが16GBあるので、助けてください。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#symbolic-links=0

#vish start
open_files_limit = 8000
max_connections = 500
#set-variable=max_connections=500
thread_concurrency = 8
#concurrent_insert=2
thread_cache_size=2000

interactive_timeout=180
wait_timeout=180

max_allowed_packet = 32M
key_buffer_size = 3000M
read_buffer_size = 16M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 256M
myisam_sort_buffer_size = 16M
myisam_max_sort_file_size = 256M
myisam_repair_threads = 1
#myisam_recover = 4
max_heap_table_size = 2048M
tmp_table_size = 1024M
table_open_cache = 2000
table_cache = 2000
sort_buffer_size = 128M 
join_buffer_size = 128M 
query_cache_size = 128M 
query_cache_limit = 128M 

#slow_query_log=1
log-slow-queries
long_query_time=2
#log_queries_not_using_indexes=1
slow_query_log_file = /var/log/mariadb/Host_name-slow.log

[mysqldump]
user=root
password=*********
#max_allowed_packet = 1024M 

[myisamchk] 
key_buffer_size = 2500M 
sort_buffer_size = 1024M 
read_buffer = 32M
write_buffer = 32M

[innodb]
innodb_buffer_pool_size=3G
innodb_buffer_pool_instance=2
innodb_additional_mem_pool_size=20M
innodb_log_file_size= 512M
innodb_log_buffer_size=16M
innodb_flush_log_at_trx_commit=1
innodb_thread_concurrency=16
#innodb_read_io_threads=16
#innodb_write_io_threads=16
#innodb_io_capacity=2000
#innodb_lock_wait_timeout=120

innodb_flush_method=O_DIRECT
#vish end

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#!includedir /etc/my.cnf.d
3
Vish

問題を修正しました。問題は、適切な権限で行うことでした。 my.cnfファイルに対する適切な権限は、777ではなく644にする必要があります。

0
Vish

限界はあなたが考えるところではないかもしれません。

オープンファイルの制限に問題があり、Centos自体によって設定されています。見てください:

limit 'open files'およびMySQL 'open_files_limit'を永続的に上げる方法

そのリンクからのいくつかの重要なポイント:

  • 開いているファイルのデフォルトのulimit1024です。
  • MySQLはそのopen_files_limitをシステムのulimitに設定されているものに設定します。
  • MySQLulimitよりopen_files_limit高く設定できません

ulimitを一時的または永続的に、グローバルに、または特定のユーザーのために調達できます。詳細については、リンクを参照してください。

そのようなリソースはもっとあります。

2
Julian Warren

my.cnfファイルの権限を確認します-ls -l /etc/my.cnfまたはls -l /etc/mysql/my.cnf

所有者とグループを確認します。多くの場合、my.cnfを編集した後、rootユーザーに対して読み取り専用の権利があります。

所有者をmysql:rootに変更するか、または755などのコマンドマスクを変更して、最終的に次のようになります。

root@monitor:~# ls -l /etc/mysql/my.cnf
-rwxr-xr-x 1 mysql root 2539 Nov 27 10:10 /etc/mysql/my.cnf
root@monitor:~#

mysqlユーザーがmy.cnfファイルを開けない場合-デフォルト値== 151を使用します

0
a_vlad

/etc/security/limits.confへのその他のいくつかの変更と、調整が必要ないくつかのsystemd設定があります。詳細については、この記事を参照してください。

https://pjstrnad.com/mariadb-raise-number-of-connections/

0
KJ50