两周前,SuSE 将他们的 SuSE Linux Enterprise Server (SLES) for mariaDB 的软件包10.2.29-3.22.1
从10.2.31-3.25.1
. 这个小更新中断了我的 SLES 12SP4 生产服务器以及我的 SLES12SP5 开发服务器上的数据库连接。
此更新引入了套接字连接的问题:到目前为止,我为and组声明了套接字my.cnf
,
该组是 SLES11 上的默认位置,并且工作正常。socket = /var/lib/mysql/mysql.sock
[client]
[mysqld]
更新后这种行为发生了变化:当我的 drupal php 应用程序现在尝试连接到这个套接字时,它们只会抛出PDOException: SQLSTATE[HY000] [2006] MySQL server has gone away in lock_may_be_available() (
. 如果我称它为
systemctl status mysql.service
我的终端,它会通知我mysqld[pid]: refused connect from IP
。
幸运的是,我发现我的生产机器使用默认的socket = /run/mysql/mysql.sock
. 我的猜测是,新的 mariaDB 版本不接受符号链接,因为/var/lib/mysql
它位于不同的卷上,并在我的设置中由符号链接集成。
但是我的开发机器也拒绝这个解决方案,我无法让数据库再次工作。prod 和 dev 之间的主要区别在于我已经将 dev 迁移到了 service pack 5,因此我犹豫将我的生产环境从 SP4 升级到 SP5。
- 这不是防火墙问题,因为关闭防火墙后它不会改变。
bind-address = 127.0.0.1
它也在drupal设置中配置为主机- 我将套接字目录更改为,
/tmp/mysql.sock
因为它应该可以从任何地方访问而没有结果。 - 文件权限是
srwxrwxrwx 1 mysql mysql 0 13. Mär 11:59 mysql.sock=
netstat -ln | grep mysql
返回unix 2 [ ACC ] STREAM LISTEN 670834 /tmp/mysql.sock
systemctl status mysql.service
返回mariadb.service - MySQL server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled) Active: active (running) since Fr 2020-03-13 11:59:54 CET; 3h 2min ago Main PID: 12393 (mysqld) Status: "Taking your SQL requests now..." Tasks: 30 (limit: 512) CGroup: /system.slice/mariadb.service └─12393 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=mysql
在 mariaDB 更改日志中没有任何关于套接字处理的证据。
有没有人遇到过同样的问题?或者有什么想法可以解决这个问题?不幸的是,我不是数据库专家......
谢谢,
抢