我有一个问题,在我的应用程序中导致了很长的“数据库时间”。
DB为Percona MySQL 5.5.35。
该应用程序运行良好,可以从数据库读取/写入数据。问题是,我有非常长的DB响应时间,这绝对不是执行查询所花费的时间,这些查询都很简单,而且是缓存的。
例如,我将随机获得响应时间为几秒,而其他时间,它只需几毫秒。有缓慢的查询日志设置,没有查询是缓慢的,它们都是简单的微小数据插入和大约80%的读取,整个DB只有20 DB,这是一个互联网论坛。

我确信问题在于套接字,因为我不能在my.cnf的mysqld部分中指定套接字。如果这样做,则在重新启动数据库时会出现一个错误,即:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)例如,下面是my.cnf的实时工作副本,删除了不相关的部分:
[mysql]
# CLIENT #
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
# General #
default-storage-engine = InnoDB
# Database replication #
server-id=1895149
log-bin=mysql-bin
log-error=mysql-bin.err
binlog_do_db=reefbase1
# MyISAM #
key-buffer-size = 32M
myisam-recover = FORCE,BACKUP注意在mysqld部分中没有指定端口和套接字?
如果我把这个改为:
[mysql]
# CLIENT #
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
# General #
default-storage-engine = InnoDB
# Database replication #
server-id=1895149
log-bin=mysql-bin
log-error=mysql-bin.err
binlog_do_db=reefbase1
# MyISAM #
key-buffer-size = 32M
myisam-recover = FORCE,BACKUP这就是我一遍又一遍地看到,要安装的my.cnf,我的服务器无法从“无法连接”的错误开始。
如有任何建议,将不胜感激。
发布于 2014-03-18 21:23:03
这里要记住的第一点是,如果客户端配置为使用localhost,许多mysql客户端(包括php)将默认为unix套接字样式的通信。如果服务器没有正确设置此套接字,则客户端可能试图连接到套接字,但失败。
其余部分是从我们在评论中的讨论中总结出来的。
无论如何,由于您的服务器没有被配置为创建套接字,而且客户端被指向一个对Ubuntu系统来说不寻常的位置,我认为您应该尝试更改它,首先将pid和套接字文件指向标准Debian/Ubuntu位置。它是/var/run/mysqld/mysqld.sock,或者是最近的/run/mysqld/mysqld.sock。
理论上来说,另一个位置应该可以工作,虽然我猜测某些东西并不是完全写到权限或其他东西上。
发布于 2015-10-19 19:03:31
我的问题有点不同,但是这个问题出现了。通过TCP连接而不是套接字解决了我的问题。它也能帮助其他人。
即在你的客户部分放:
host=127.0.0.1和/或
protocol=tcphttps://serverfault.com/questions/582866
复制相似问题