linux – my.cnf中的MySQL Socket配置问题
我的问题在我的应用程序中导致了很长的“数据库时间”问题.
数据库是Percona MySQL 5.5.35. 该应用程序运行良好,可以很好地从数据库读取/写入.问题是我有非常长的数据库响应时间,这绝对不是执行查询所花费的时间,这些都是简单的,并且是缓存的. 例如,我将随机获得响应时间几秒钟,有时则只需几毫秒.设置缓慢的查询日志,没有查询速度慢,它们都是简单的微小数据插入和大约80%的读取,整个数据库只有20MB,这是一个互联网论坛. 我确定问题出在套接字上,因为我不能在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要设置,我的服务器无法启动“无法连接”错误. 任何建议将非常感谢. 解决方法
这里要记住的第一点是,如果客户端配置为使用localhost,许多mysql客户端(包括php)将默认为unix套接字样式通信.如果您的服务器未正确设置此套接字,则客户端可能正在尝试连接到套接字并失败.
其余部分来自我们在评论中的讨论. 在任何情况下,由于您的服务器未配置为创建套接字,并且客户端指向Ubuntu系统不常见的位置,我认为您应该首先尝试将其更改为指向pid和套接字的标准Debian / Ubuntu位置文件.哪个是/var/run/mysqld/mysqld.sock,或者最近是/run/mysqld/mysqld.sock. 另一个位置理论上应该可以工作,不过我猜测某些东西在权限或其他方面并不完全可写. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 如何从“grep”中排除所有“权限被拒绝”的结果行
- Alpine Linux 3.10 发布
- LINUX入门:PHP数据库操作Helper类完整实例
- c – pthread SCHED_OTHER / SCHED_FIFO的sched_get_prio
- 如何在Linux(RHEL)中使用静态地址启用IPv6自动配置
- linux – 如何在mac OS中将主机ip地址传递给docker?
- Kali Linux 工具清单
- Linux将权限设置为文件夹及其所有子文件或文件夹
- linux – Ubuntu:如何链接二进制文件
- OpenCV在与anaconda的Linux上使用python无法正常工作.获取未