mac终端运行mysql出现Can't connect to local MySQL server through socket '/tmp/mysql.sock'

转载:https://blog.csdn.net/huanghanqian/article/details/65935724

打开mac的终端,输入mysql -u root -p****** 之后,出现Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’,十分惊讶,因为几个月前运行这个命令还是成功的。然后我就cd /tmp,再 ll,发现/tmp下真的没有mysql.sock。

网上搜了一大堆教程,都是说什么文件权限啊,连接个数超阈值的问题,这些一看就不能解决我的问题。还有的解决方案是linux上的mysql,文件夹名根本不能对应。之后我自己找办法,发现我的mysql server居然处于关闭状态。奇怪,mysql应该是开机自启项,怎么会关了呢?然后我就在设置中点开mysql,再点击Start MySQL Server,发现无法启动,显示:Warning:The /usr/local/mysql/data directory is not owned by the ‘mysql’ or ‘_mysql’。

再次找寻这个问题的解决方案,发现是因为Mac OS X的升级或其他原因会导致MySQL启动或开机自动运行时/usr/local/mysql/data的宿主发生了改变,没有了这个文件夹的权限了,所以在终端上执行:

sudo chown -R mysql /usr/local/mysql/data
即可解决。之后再点击Start MySQL Server,启动成功。然后/tmp下会自动生成mysql.sock,此时再在终端上运行mysql命令就可以成功启动mysql了。

下面说明一下这个语句的意思:sudo是非root用户临时获取root权利来执行,chown是修改文件或者文件夹的属主或者属组,-R是递归,即该目录下的子目录和文件都生效,mysql是要改成的文件夹属主,/usr/local/mysql/data就是你要修改的目标,可以是文件或文件夹。

如sudo chown -R user dir   指把dir以及它的所有子文件/文件夹的owner改成user.


chmod 与chown很相似,但是是控制文件/文件夹的读写执行权限的
范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
范例:
chmod a=rwx file

chmod 777 file
效果相同
chmod ug=rwx,o=x file

chmod 771 file
效果相同
若用chmod 4755 filename可使此程序具有root的权限

sudo chmod -R 755 /var/dedecms/data/
sudo是非root用户临时获取root权利来执行
chmod是修改文件或者文件夹的档案如何被他人所调用
-R是递归,即该目录下的子目录和文件都生效
755 表示文件或文件夹的所有者有读、写、执行的权限,文件所有者同组的用户有读和执行的权限,其它用户有读和执行的权限
/var/dedecms/data/ 就是你要修改的目标

猜你喜欢

转载自blog.csdn.net/fighting_sxw/article/details/80856297