关于MAC下mysql配置环境时丢失mysql.sock而自身无法生成问题的解决方案
来源:互联网 发布:二代身份证相片 软件 编辑:程序博客网 时间:2024/04/30 21:27
本文纯属个人见解,如有错误,欢迎大家指出!
前天自己在mac下运行mysql时,在Termimal中出现错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
于是自行搜索了许多相关方案,花了很长时间最终解决问题,在空余时间将这些答案做了一些整理,加上自己的解决方案,以尽量简洁明了的方式为大家解决相同问题,关于用homebrew来安装mysql的暂不作讨论。
首先,mysql有两种连接方式,即TCP/IP及socket,而mysql.sock是为主机loaclhost建立mysql连接,因此缺失此文件就会导致mysql无法连接。
根据ERROR中的信息得知mysql.sock文件应位于tmp文件夹下(如显示位置,可自行前往相应文件夹),通过Finder进入/tmp下,发现并未找到mysql.sock或是只能找到mysql.sock的替身文件,打开替身文件发现原身已经损坏。
根据情况解决方案分为两种:
1、相应目录下无mysql.sock文件
一般来说,此类问题较容易解决,方案如下:
首先找到mysql的配置文件,/etc/my.cnf(或出现/etc/mysql/my.cnf)打开,
[mysqld]socket=/var/lib/mysql/mysql.sock
出现以上类似字样,说明mysql将mysql.sock文件定位于/var/lib/mysql/mysql.sock位置,我们在这里使用
ln -s /var/lib/mysqld/mysqld.sock /tmp/mysql.sock
对两个目录下的sock文件进行链接。
修改完成后,使用service mysqld restart重启mysql服务,再次输入mysql命令测试问题是否解决。
如果在/var/lib/mysql/下仍未找到sock文件,那么跳转方案2。
如果在/tmp下存在mysql.sock文件,那么将mysqld中的socket改成socket=/tmp/mysql.sock或直接将socket行删除即可。
若在[mysqld]字段中未发现socket字段,在/tmp下也没有发现sock文件,那么使用su进入root使用find / -name mysql.sock来搜索sock文件,找到mysql.sock原身将其复制到my.cnf中提到的位置,默认位置为/tmp/mysql.sock。
2、相应目录下有mysql.sock文件
在这种情况下出现此种问题的原因基本为两种:
一、mysql.sock为替身,而原身损坏
二、文件权限不足,使用 chmod -R 777 /tmp/mysql.sock解决
mysql.sock原身损坏的问题比较少见,首先找到my.cnf中提到的socket位置下的mysql原身,删除原身。
再通过以下代码彻底卸载mysql,重新安装。
sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/My*vim /etc/hostconfig (and removed the line MYSQLCOM=-YES-)rm -rf ~/Library/PreferencePanes/My*sudo rm -rf /Library/Receipts/mysql*sudo rm -rf /Library/Receipts/MySQL*sudo rm -rf /var/db/receipts/com.mysql.*
再次安装后若出现Termimal提示PID被占用的情况,则使用kill指令杀死相关进程。按方案1的操作将mysql.sock放到指定位置并赋予足够的权限,重启mysql服务,问题得到解决。
- 关于MAC下mysql配置环境时丢失mysql.sock而自身无法生成问题的解决方案
- mysql.sock丢失问题
- mysql.sock丢失问题
- MySQL下mysql.sock丢失
- mysql 无法启动 mysql.sock丢失 解决办法
- MySql出现'...sock'无法连接的问题
- mysql.sock的问题
- mysql.sock丢失
- mysql.sock文件丢失
- mysql mysql.sock丢失怎么办
- 解决centos下MYSQL无法启动但存在锁定sock的问题
- Linux下MySQL"丢失"了mysql.sock了怎么办 .
- mysql mac 下丢失密码的恢复
- mysql linux下密码丢失的解决方案
- linux下安装mysql,mysql.sock问题
- Mac环境下MySQL无法启动的处理方法
- 无法连接到MYSQL, mysqld.sock问题
- liunx丢失mysql.sock文件
- Hibernate注解
- iOS 【在iOS中自动检测内存泄漏】
- java与xml之DOM4J生成和解析XML文档
- Best Time to Buy and Sell Stock III
- 教你玩转HelloWorld
- 关于MAC下mysql配置环境时丢失mysql.sock而自身无法生成问题的解决方案
- seo学习
- Hadoop笔记三之Hdfs体系架构及各节点之间的Rpc通信
- Android配置----Eclipse+BlueStacks调试Android应用
- 枚举+前缀和...
- 202. Happy Number --LeetCode Record
- Qt-观察者模式
- iOS Core Graphics手写板
- 欢迎使用CSDN-markdown编辑器