MySQL 服务器丢失连接

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当时它解决了问题,但现在有时它再次丢失连接。有时查询和结果之间的响应时间很长(大约 0-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

现在我不知道该怎么办了。

相关内容