大家好,
我遇到这样一个问题,mysql配置文件中的文件路径mysql.sock
不正确,不是指,/var/run/mysql/mysql.sock
而是指var/lib/mysql/mysql.sock
.
为了测试,我创建了一个文件,我尝试连接到数据库,我通过命令运行该文件php checkConnect.php
。从端口连接时127.0.0.1
,一切正常,但是当我尝试localhost
通过套接字连接时,出现错误permission denied
。当您在帮助下运行文件时,sudo php checkConnect.php
一切正常。
目前,服务器正在工作并且加载良好,为了不重新启动 MySQL,您可以将文件复制/var/lib/mysql/mysql.sock
到目录/var/run/mysql/
并指定复制文件的路径作为 mysql 连接中的第 6 个参数吗?
例子 :
mysqli_connect('localhost', 'пользователь', 'пароль', 'базаданных', 'порт', '/var/run/mysql/mysql.sock');
我想这样做,但同事说它会破坏数据库的工作。
这是我为什么写这一切的问题,如果我将文件复制到,我会破坏服务器/var/lib/mysql/mysql.sock
吗var/run/mysql/
要使用的套接字由全局变量的值决定
@@GLOBAL.socket
。该变量只是 global 而不是 dynamic,它的值在服务器运行时不能更改。更改此设置的唯一方法是修改配置文件或服务器服务启动命令行,然后重新启动服务器。
不可能的。
这没有任何意义。即使您将文件复制到新位置,它也不会改变任何内容。服务器仍将继续使用“旧”文件。
但是如果你试图更改或删除套接字文件,这几乎肯定会导致服务器崩溃。