Reputation: 775
I am struggling to set max_connections parameter in /etc/my.cnf but MariaDB does not seem to read the parameter from the file.
My /etc/my.cnf file:
[mysqld]
#skip-grant-tables
datadir=/data/mysql
socket=/data/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# network
connect_timeout = 60
wait_timeout = 28800
max_connections = 100000
max_allowed_packet = 64M
max_connect_errors = 1000
# limits
tmp_table_size = 512M
max_heap_table_size = 256M
table_cache = 512
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
[client]
port = 3306
socket= /data/mysql/mysql.sock
But when I check the variable in MariaDB, it shows the default value:
MariaDB [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
1 row in set (0.00 sec)
However, other parameters in my.cnf are correct:
MariaDB [(none)]> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> show variables like 'max_allowed_packet';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 67108864 |
+--------------------+----------+
1 row in set (0.00 sec)
MariaDB [(none)]> show variables like 'max_connect_errors';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_connect_errors | 1000 |
+--------------------+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> show variables like 'connect_timeout';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| connect_timeout | 60 |
+-----------------+-------+
1 row in set (0.00 sec)
I can set this variable from mysql command line but it resets itself when I restart the service:
MariaDB [(none)]> set global max_connections := 10000;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 10000 |
+-----------------+-------+
1 row in set (0.00 sec)
OS: RHEL 7
MariaDB version: mariadb-server-5.5.47-1.el7_2.x86_64
Upvotes: 9
Views: 35670
Reputation: 631
Yeah - I know - necromancy - but there's no better answer so here goes:
I had been plagued with this issue myself for a terribly long time. However, just today, I came to the realisation that sometimes the comments inside configuration files can be helpful. Namely, the directory identified in line number 2.
below found in /etc/mysql/mariadb.cnf
:
# The MariaDB/MySQL tools read configuration files in the following order:
# 0. "/etc/mysql/my.cnf" symlinks to this file, reason why all the rest is read.
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.
So, you need to add your global options to a section named [mysqld]
into a file such as /etc/mysql/conf.d/myoptions.cnf
Restart MariaDB and your settings will stick.
Upvotes: 0
Reputation: 11
In Ubuntu server with Maria DB enter parameter max connections in /etc/mysql/mariadb.conf.d/50-server.cnf
Restart the service for changes to take effect.
systemctl restart mariadb
Upvotes: 1
Reputation: 774
I have same issue on ubuntu server. nd i have change this file /etc/mysql/my.cnf
max_connections = 1000
then execute the query . you are changing wrong file.
Upvotes: 3
Reputation: 13176
I think the solution is here. Increase your open files limit .
https://dba.stackexchange.com/questions/12061/mysql-auto-adjusting-max-connections-values
Upvotes: 3