MySQL теряет соединения
Позвольте мне объяснить историю этого вопроса,
Я запускаю Centos 7 на выделенном сервере, когда я установил его впервые, я не создал ни одного раздела, потому что не очень хорошо знаю, как это сделать, и на самом деле я думаю, что это невозможно, потому что я не могу сделать резервную копию всего сервера в другой машине.
Итак, это мой диск:
[root@ns527667 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1004.5K 0 part
└─sda2 8:2 0 19.5G 0 part /
└─sda3 8:3 0 1.8T 0 part /home
└─sda4 8:4 0 511M 0 part [SWAP]
Я установил сервер MySQL на /
раздел, но со временем все мои базы данных значительно выросли, поэтому я решил перенести их в /home
раздел, было приятно. Я забыл космический вопрос тогда. До переезда я смог подключиться к своей БД с помощью localhost
в качестве хоста БД, но он начинает иметь проблему с соединением, иногда мои приложения теряют соединение, поэтому я изменил хост БД на 127.0.0.1
в тот момент это решало проблему, но теперь иногда он снова терял связь. И несколько раз время отклика между запросом и результатом его высоко (примерно 5-5000 мс).
я бегу MySQLTunner
и он предложил мне изменить некоторые переменные, поэтому я изменил много переменных, таких как:
SET GLOBAL max_connections = 500;
SET @@GLOBAL.long_query_time = 1;
SET GLOBAL tmp_table_size = 128000000;
SET GLOBAL max_heap_table_size = 128000000;
SET GLOBAL key_buffer_size = 32000000;
SET GLOBAL thread_cache_size = 20;
SET GLOBAL max_allowed_packet = 8000000;
На самом деле мои соединения раундов 150-200
Я оптимизировал или, по крайней мере, я думаю, что я сделал это на всех моих InnoDB
mysqlcheck --user=root --password="pass" -o --all-databases
Это мое /etc/my.cnf
[mysqld]
datadir=/home/var/lib/mysql
socket=/home/var/lib/mysql/mysql.sock
interactive_timeout=86400
wait_timeout=86400
max_connections=1000
innodb_buffer_pool_size=256M
skip-name-resolve
slow-query-log = 1
slow-query-log-file = /home/var/lib/mysql/mysql-slow.log
long_query_time = 2
bind-address="127.0.0.1"
port=3306
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/home/var/lib/mysql/mysql.sock
port=3306
Я использую различные java-приложения, и они отлично работают на моем персональном компьютере, но на сервере иногда теряется соединение с такими ошибками:
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
или же
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Теперь я не знаю, что делать..