今天用 brew install mysql 安装完成后,使用mysql -v 命令发现报Can't connect to local MySQL server through socket '/tmp/mysql.sock' 的错误,关键是我用 mdfind -name mysql.sock 去搜索也没有查到我的电脑哪里有这个文件。
找了好多方案,试过完全删除掉,再重新用brew 安装,都没有成功。
比如方案一:
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
上述提示可能在启动mysql时遇到,即在/tmp/mysql.sock位置找不到所需要的mysql.sock文件,主要是由于my.cnf文件里对mysql.sock的位置设定导致。
mysql.sock默认的是在/var/lib/mysql, 如果发现确实是在该目录下,可以在[mysqld]下面加入mysql.sock的path
vi /etc/my.cnf(my.cnf也可能在其他路径下)
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
但是要保证使用mysql的用户具有对该目录的写权限,否则这样的改动由于权限限制仍然会报错。
所以为了避免权限问题也可以使用软链接为/var/lib/mysql/mysql.sock创建一个到/tmp/mysql.sock的联接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
由于/tmp/文件夹默认对other有w权限,这样就可以避免权限问题。
此外,如果发现mysql.sock不在默认的/var/lib/mysql位置,一种解决方法是使用find命令搜索mysql.sock的位置,然后按前面两种解决方案挑一种做即可。
第二个方案:
http://ruby-china.org/topics/794
其中一个大神说的貌似有道理,我的mac和Linux默认的不同,
Mac的MySQL和Linux下的配置是有区别的,而MySQL默认使用Linux的配置。 建议你观察以下具体错误信息中说的那个找不到mysql.sock的那个地方的目录到底是否存在 这里贴一个最小的,但是能让mysql工作的配置文件 配置文件的位置 /etc/my.cnf 或者 /usr/local/etc/my.cnf 你检查一下,如果你的 /etc/my.cnf 不存在这个文件,你放一个在那里也行
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
init-connect ='SET NAMES utf8'
max_allowed_packet = 64M
bind-address = 127.0.0.1
port = 3306
socket = /tmp/mysql.sock
如果你用brew install mysql安装的,那么brew装好以后,把这些配置放到/usr/local/etc/my.cnf
,然后执行下面命令就完成了mysql安装了
我用 mdfind -name my.cnf的确能找到很多文件,
➜ ~ mdfind -name my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/ndb_ddl/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/ndb_binlog/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/ndb_big/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/ndb/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/ndbcluster/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/ndb_team/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/ndb_rpl/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/ndb_memcache/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/federated/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/include/default_my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/rpl/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/rpl_ndb/my.cnf /usr/local/Cellar/mysql/5.7.12/mysql-test/suite/rpl/extension/bhs/my.cnf /Applications/XAMPP/xamppfiles/etc/my.cnf ➜ ~
然后我复制了一份配置文件的内容,在/usr/local/etc 下建了这个my.cnf文件,内容是:
[client] port = 3306 socket = /tmp/mysql.sock default-character-set = utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8 init-connect ='SET NAMES utf8' max_allowed_packet = 64M bind-address = 127.0.0.1 port = 3306 socket = /tmp/mysql.sock
然后用mysql -v ,仍然报Can't connect to local MySQL server through socket '/tmp/mysql.sock' 的错误
后来查到先要mysql.server start ,但是一直报
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/lihailindeMacBook-Pro.local.pid).
折腾到最后,终于搞定,用 sudo mysql.server start 就可以了。。。 然后用 sudo mysql ,显示Success了!
相关推荐
ERROR 2002: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (111) 解决办法: /usr/local/mysql/bin/mysqladmin -u root > -S /var/lib/mysql/mysql.sock password 'your.passwd' ...
在MySQL服务器的运行过程中,可能会遇到“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'”这样的错误。这个错误提示表明,客户端试图通过Unix域套接字(socket文件)...
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 的异常。是用dmg直接安装的以为安装包又出现了奇奇怪怪的错误,正欲卸载该版本时找到了我的问题的关键。 解决...
标题中的问题 "Can't connect to local MySQL through socket '/tmp/mysql.sock'" 是一个常见的MySQL连接错误,通常发生在尝试通过套接字文件(socket file)连接到本地MySQL服务器时。该问题通常涉及MySQL服务未...
在使用MySQL时,可能会遇到一个常见的错误:“ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’”。这个错误表明客户端无法通过Unix套接字文件与本地MySQL服务器建立...
在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can’t connect to local MySQL server through socket,即无法通过socket连接到mysql服务器,同时...
?php $link=mysql_connect(‘localhost’,’root’,... 运行后报错 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ 但在 命令行中能进入mysql [root@localhost local]# mysql -u root -p E
最近在linux上装Aphace... can't connect to local MySQL server through socket 'var/run/mysqld/mysqld.sock' 这个把我弄得几近崩溃,我在网上查找了很多的解决办法,大概有几种解决方案: 1.权限问题 2.修改/
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'(2) ``` 解决方法是使用以下命令: ``` sudo chown -R _mysql:mysql /usr/local/var/mysql ``` 然后启动 MySql 服务: `...
在MySQL的使用过程中,有时会遇到异常错误"ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)"。这个错误通常表示客户端无法通过套接字文件与MySQL服务器...
当遇到类似 `ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)` 的错误时,可以通过以下两种方式解决: - 使用 `mysqladmin` 设置 root 用户密码并指定正确的 socket ...
如果遇到 `Can't connect to local MySQL server through socket '/tmp/mysql.sock` 问题,可以按照以下步骤解决: 1. 查找 `mysql.sock` 文件: ``` find / -name mysql.sock ``` 2. 创建软连接: ``` ln -s /var/...
php 不能连接数据库 php error Can't connect to local MySQL server through socket '/tmp/mysql.sock'
MySQL数据库是我们日常运维工作中经常会使用的一个重要组件,它在运行过程中可能会出现各种问题,而错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket是一个比较常见的连接失败错误。...
如果遇到`Can't connect to local MySQL server through socket '/tmp/mysql.sock'`的错误,可能是`mysql.sock`文件不在默认路径`/tmp`下,或因系统重启而被删除。你可以通过创建符号链接或重启MySQL服务来解决这个...
#### 问题一:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' - **原因**:通常是 MySQL 服务没有启动导致的。 - **解决办法**:执行命令`service mysql start`来启动 ...
- 可能会出现连接失败的情况,错误信息为“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”。此时,需要检查`/etc/my.cnf`文件中的`socket`配置项,确保与实际...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysqldata/mysql.sock' (111) ``` - **故障解决**:该错误通常表示 MySQL 服务没有正常运行或者 socket 文件路径不正确。可以...
如果遇到连接问题,比如出现 “Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)” 的错误,这通常意味着 MySQL 服务没有启动或 MySQL 服务使用的套接字文件路径不正确。 可以尝试以下...