当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
我不得不从my.cnf禁用explicit_defaults_for_timestamp。
其他回答
请确保你已经正确安装了MySQL服务器,我遇到过这个错误很多次,我认为从套接字调试很复杂,我的意思是重新安装它可能更容易。
如果你使用的是CentOS 7,下面是正确的安装方法:
首先,添加mysql社区源代码 Yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
然后你可以通过yum install mysql-community-server安装它
用systemctl启动它:systemctl Start mysqld
以下是对我有效的方法:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysqld restart
如果磁盘空间快用完,这就是一个问题。 解决方案是从HDD中释放一些空间。
请阅读更多内容了解解释:
如果你在LINUX下运行MySQL,用命令disk free检查硬盘的空闲空间:
df
如果你得到这样的东西:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 5162828 4902260 0 100% /
udev 156676 84 156592 1% /dev
/dev/sda3 3107124 70844 2878444 3% /home
这就是问题所在,现在你有解决方案了!
因为mysql。Sock想要创建在mysql文件夹,几乎总是在根文件夹下,不能实现,因为缺乏空间。
如果你周期性地在mysql目录下输入ls命令(在openSUSE 11.1是在/var/lib/mysql),你会得到这样的东西:
hostname:/var/lib/mysql #
.protected IT files ibdata1 mysqld.log systemtemp
.tmp NEWS greekDB mysql mysqld.pid test
ARXEIO TEMP1 ib_logfile0 mysql.sock polis
DATING deisi ib_logfile1 mysql_upgrade_info restore
mysql。Sock文件经常出现和消失(你必须尝试用ls分配一个mysql实例。文件夹上的袜子文件)。
这是由于磁盘空间不足造成的。
我希望我能帮助一些人!!!! 谢谢!
无法通过套接字/var/lib/ MySQL / MySQL .sock连接到本地MySQL服务器 有两种解决方法
使用短链接 在客户端和服务器文件中提到套接字文件链接。
方法1: 要做链接你可以用
ln -s /data/mysql_datadir/mysql。袜子/ var / lib / mysql / mysql。袜子
方法2: 要提到客户端和服务器端的套接字文件,您需要为客户端和服务器文件设置套接字文件路径,如下所示。服务器文件名可以是Server .cnf,客户端文件名可以是client.cnf。在这个文件中,你会发现一个类似[client]或[server]的部分。你必须把更新套接字文件路径为服务器和客户端通信。
client.cnf
(客户端) 套接字= / mydata / db / mysql / mysql.sock
server.cnf
(服务器) 插座= mydata / db / mysql / mysql。袜子
我更喜欢用方法2代替方法1。因为链接是一个依赖文件,如果以某种方式删除它,那么你会遇到麻烦。既然你知道更好的选择链接,你应该使用它。
我使用MyXQL访问Elixir中的数据库。我的实际错误是使用/tmp/mysql。当/etc/my.conf使用/var/lib/mysql/mysql.sock时。
我的解决方案是在Elixir设置中设置一个环境变量: 出口MYSQL_UNIX_PORT = / var / lib / mysql / mysql。sock,这样MyXQL就不会使用它的默认位置。
这种解决方案的原则是,您可以将MyXQL重定向到另一个位置,以避免这种类型的问题。