分类: 技术 |
Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2)
标签:启动 sed 目录 报错 出现 jobs ali com mysql启动不了
小编还为您整理了以下内容,可能对您也有帮助:
Can't connect to local MySQL server through socket这是怎么回事?
是你的mysql.sock
文件不存在了,
可能是被你不小心删除了,
连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。
如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。
另一个解决办法是你现在不能用套接字建立连接因为它不见了,你可以建立一个TCP/IP连接,例如,如果服务器主机是192.168.0.1,你可以这样连接:
%mysql
-u
root
-h
192.168.0.1
-p
%mysqladmin
-u
root
-h
192.168.0.1
-p
shutdown
如果套接字文件被一个cron任务删除,问题将重复出现,除非你修改cron任务或使用一个或使用一个不同的套接字文件,你可以使用全局选项文件指定一个不同的套接字,例如,如果数据目录是/usr/local/var,你可以通过将下列行加入/etc/my.cnf中,将套接字文件移到那里:
[mysqld]
socket=/usr/local/var/mysql.sock
[client]
socket=/usr/local/var/mysql.sock
对服务器和客户均指定路径名,使得它们都使用同一个套接字文件。如果你只为服务器设置路径,客户程序将仍然期望在原位置执行套接字,在修改后重启服务器,使它在新位置创建套接字
怎样保护“/tmp/mysql.sock
”不被删除
如果你有这个问题,事实上任何人可以删除MySQL通讯套接字“/tmp/mysql.sock”,在Unix的大多数版本上,你能通过为其设置sticky(t)位来保护你的“/tmp”文件系统。作为root登录并且做下列事情:
shell>
chmod
+t
/tmp
这将保护你的“/tmp”文件系统使得文件仅能由他们的所有者或超级用户(root)删除。
你能执行ls
-ld
/tmp检查sticky位是否被设置,如果最后一位许可位是t,该位被设置了。
Can't connect to local MySQL server through socket这是怎么回事?
socket文件路径配置错误,该问题一般是由于修改mysql的配置文件my.conf导致,修改正确即可。
1、首先命令行判断mysql是否正常启动,输入命令ps -ef | grep mysql回车。
2、然后更改my.cnf文件,我的服务器中的目录为/etc/my.cnf,如果没有的话可以用find去查找。
3、然后新建一个/var/run/mysqld目录,mysqld服务重启需要这个目录,命令行输入下图红框中命令。
4、tmp目录下就有了my.cnf配置文件中需要的mysql.sock文件了,然后把my.cnf改回如下图。
5、mysql应该已经完全修复了,那么我们再测试一下。
Can't connect to local MySQL server through socket这是怎么回事?
socket文件路径配置错误,该问题一般是由于修改mysql的配置文件my.conf导致,修改正确即可。
1、首先命令行判断mysql是否正常启动,输入命令ps -ef | grep mysql回车。
2、然后更改my.cnf文件,我的服务器中的目录为/etc/my.cnf,如果没有的话可以用find去查找。
3、然后新建一个/var/run/mysqld目录,mysqld服务重启需要这个目录,命令行输入下图红框中命令。
4、tmp目录下就有了my.cnf配置文件中需要的mysql.sock文件了,然后把my.cnf改回如下图。
5、mysql应该已经完全修复了,那么我们再测试一下。
mysql启动失败:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
1、找到mysql安装目录,将其配置文件my.default.ini改名为my.ini,并且将my.ini移至bin目录下。
2、启动命令行,将目录切换到mysql安装目录的bin目录下。
3、接下来,在命令行执行命令:mysqld --initialize --user=mysql --console。
4、注意,上一个步骤会获得一个临时密码,需要记录,之后会用到。
5、接下来在控制台以命令行输入: mysqld --install,进行安装服务操作。
6、之后,在任务管理器找到“服务”,启动其中的MYSQL服务即可。
7、输入命令行mysql -uroot -p,利用之前的临时密码输入即可登录数据库成功。
8、修改临时密码,设置密码:mysqladmin -u USER -p password PASSWORD,注意USER和PASSWORD为自己定义的数值。
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方法:
删除c:windows下面的my.ini
打开c:mysqlbinwinmysqladmin.exe 输入用户名 和密码
在dos下 输入 mysqld-nt -remove 删除服务 ,接着输入 mysqld-nt -install
输入mysql 启动成功。
其它可参考的方法:
看看hosts文件中localhost是不是指向127.0.0.1
如果是没启动mysql服务,则可运行net start mysql。
直接去bin里点mysqld.exe或mysqld-nt.exe,看下它的进程能否正常运行
如不行,再去控制面板,服务里去启动它,看下是什么错误。
如果不行,就在添加删除里删去mysql,然后再重装mysql。