当前位置: 技术问答>linux和unix
烦死。装个MYSQl启动时老是说mysql.sock不存在
来源: 互联网 发布时间:2016-06-10
本文导语: 在ssh上输入 mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 入不了mYSQL的命令行。 于是我查看: [root@gzud1043 ~]# ps -ef | grep msyqld root 3254 3218 ...
在ssh上输入
mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
入不了mYSQL的命令行。
于是我查看:
[root@gzud1043 ~]# ps -ef | grep msyqld
root 3254 3218 0 16:15 pts/0 00:00:00 grep msyqld
有mysqld已经在运行了。
/etc/init.d/mysql start 启动要等很久很久都没成功
但mysqld就能启动成功。。。我安装的是mysql 5.1.35 RPM安装的
怎么解决啊?
mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
入不了mYSQL的命令行。
于是我查看:
[root@gzud1043 ~]# ps -ef | grep msyqld
root 3254 3218 0 16:15 pts/0 00:00:00 grep msyqld
有mysqld已经在运行了。
/etc/init.d/mysql start 启动要等很久很久都没成功
但mysqld就能启动成功。。。我安装的是mysql 5.1.35 RPM安装的
怎么解决啊?
|
mysql的怎么也在linux社区?
lz,你按着我的步骤去做试试看行不行
updatedb
locate mysql.sock
如果有搜索到这个文件的话,以这个方式去启动
mysql -u root -p -S /tmp/mysql.sock(这个是默认路径,lz应该根据你所找出的文件所在目录来设置)
如果没有搜索到这个文件的话,试试看不定义-S能不能直接启动
顺便搜索一下有没有my.cnf这个文件,那个mysql.sock文件的位置就是在这个文件的client元素中定义的
以下是官方的手册上提到的:
A.4.5. 如何保护或更改MySQL套接字文件/tmp/mysql.sock
对于服务器用来与本地客户端进行通信的Unix套接字文件,其默认位置是/tmp/mysql.sock。这有可能导致问题,原因在于,在某些版本的Unix上,任何人都能删除/tmp目录下的文件。
在大多数Unix版本中,可对/tmp目录进行保护,使得文件只能被其所有这或超级用户(根用户)删除。为此,以根用户身份登录,并使用下述命令在/tmp目录上设置粘着位:
shell> chmod +t /tmp
通过执行ls -ld /tmp,可检查是否设置了粘着位。如果最后一个许可字符是“t”,表明设置了粘着位。
另一种方法是改变服务器创建Unix套接字文件的位置。如果进行了这类操作,还应让客户端程序知道文件的位置。能够以多种不同方式指定文件位置:
在全局或局部选项文件中指定路径。例如,将下述行置于文件/etc/my.cnf中:
[mysqld]
socket=/path/to/socket
[client]
socket=/path/to/socket
lz,你按着我的步骤去做试试看行不行
updatedb
locate mysql.sock
如果有搜索到这个文件的话,以这个方式去启动
mysql -u root -p -S /tmp/mysql.sock(这个是默认路径,lz应该根据你所找出的文件所在目录来设置)
如果没有搜索到这个文件的话,试试看不定义-S能不能直接启动
顺便搜索一下有没有my.cnf这个文件,那个mysql.sock文件的位置就是在这个文件的client元素中定义的
以下是官方的手册上提到的:
A.4.5. 如何保护或更改MySQL套接字文件/tmp/mysql.sock
对于服务器用来与本地客户端进行通信的Unix套接字文件,其默认位置是/tmp/mysql.sock。这有可能导致问题,原因在于,在某些版本的Unix上,任何人都能删除/tmp目录下的文件。
在大多数Unix版本中,可对/tmp目录进行保护,使得文件只能被其所有这或超级用户(根用户)删除。为此,以根用户身份登录,并使用下述命令在/tmp目录上设置粘着位:
shell> chmod +t /tmp
通过执行ls -ld /tmp,可检查是否设置了粘着位。如果最后一个许可字符是“t”,表明设置了粘着位。
另一种方法是改变服务器创建Unix套接字文件的位置。如果进行了这类操作,还应让客户端程序知道文件的位置。能够以多种不同方式指定文件位置:
在全局或局部选项文件中指定路径。例如,将下述行置于文件/etc/my.cnf中:
[mysqld]
socket=/path/to/socket
[client]
socket=/path/to/socket
|
mysql.sock这个模块有吗,安装时会自动生成的,可能是路径不对
|
而且你的mysql根本就没启动起来,你看见的只是你输入的查找启动项的命令显示。应该是类似这样子的:
root 2816 0.0 0.0 65940 1264 ? S May18 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/opt/mysql/data --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqlderror.log --pid-file=/var/run/mysqld/mysqld.pid
root 2816 0.0 0.0 65940 1264 ? S May18 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/opt/mysql/data --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqlderror.log --pid-file=/var/run/mysqld/mysqld.pid
|
配置,不正确,或者 是服务没设置好。
以前 遇到很多次这个错误,都不知道怎么 稀里糊涂的解决的,
|
很明显 /etc/my.cf的设置不正确
我当时装好mysql也遇到过这样的问题
我当时装好mysql也遇到过这样的问题