大家好,今天来介绍mysql.sock.lock可以删除吗(mysql不能创建表150)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
怎样保护“/tmp/mysqlsock ”不被删除
如果你有这个问题,事实上任何人可以删除MySQL通讯套接字“/tmp/mysql.sock”,在Unix的大多数版本上,你能通过为其设置sticky(t)位来保护你的“/tmp”文件系统。作为root登录并且做下列事情:
shell>核昌州 chmod +t /tmp
这将保护迅高你的“/tmp”文件系统使得文件仅能由他们的所有者或超级用户(root)删除。
你能执行ls -ld /tmp检查sticky位是否被设置,如果最后一位许可位改蔽是t,该位被设置了。
MYSQL手册。
不能创建 mysqlsocklock是怎么回事
一、原因:
1、linux系统一次不正常关机后,连接mysql的时候系统提示不能通过/tmp/mysql.sock文件进行连接,或者非正确关闭时,导致昌尘mysql.sock文件再次丢失,当你在次启动时出现如下错误,connect
mysqld faild ,/tmp/mysql.sock can't find
mysql.sock的丢失主要是因为更改了机器名,在没有正确关闭mysqld的情况下,去执行mysqld_safe,这样他就删除已经运行的mysql.sock了。正常情况下,mysqld_safe
应该告诉我们是已经有Mysqld运行了,而上边并没有这样提示,主要是更改机器名导致mysqld_safe判断是否已经运行,去找的是newhostname.pid文件,但已经运行的mysqld生成的是oldhostname.pid,
肯定找不到newhostname.pid,所以mysqld_safe收拾一下(清理了mysql.sock),然后去重启,但是ibdata需要lock,它lock不了,还是起不了,但是老的mysql.sock就消颂李失。
2、连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。
如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。
二、解决方法:
方法一:
mysql --port=3306 -uroot -p123qwe* -S /var/lib/mysql/mysql.sock
方法二:
mysql --socket=/var/lib/mysql/mysql.sock --port=3306 -uroot -p123qwe*
方法三:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
三、步骤:
我的startmysql.sh :
my.cnf位置:
里面都是关于启动Mysql的一些东西。
vi /etc/my.cnf
默认去连接的/var/lib/mysql/mysql.sock 这个文件。
而我们的启动配置文件在:--socket=/tmp/mysql.sock
两个配置文件:启动运行的时候是在/data0/mysql/3306/my.cnf
的mysql.sock在位置/tmp/mysql.sock,而/etc/my.cnf
的mysql.sock在位置/var/lib/mysql/mysql.sock 刚好和在终端运行mysql出现在错误相同:Can't
connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
(2)
my.cnf是mysql的启动配置文件。所以为了使改动生效野迅迟必须重启mysql!
mysql安装目录出现这个文件mysqlsocklock
重启mysql的时候报错
Can\'t connect to local MySQL server through socket \'/tmp/mysql.sock\'
重建一下/tmp/mysql.sock
/bin/mysqld_safe;
判断一般人解决故障时没有切换到mysql用户,造成权限有问题,无法创建mysql授权表,
所以备清也就无法创建/tmp/mysql.sock 和hostname.pid文件。因此,总结解决方法如下:
#su mysql
$/usr/local/裤滚乱bin/mysql_install_db //重建授权表
$/usr/local/bin/胡档mysqld_safe &
$/usr/local/bin/mysql //测试
mysq>bye;
$
文件已经解决,重新生成新的 /tmp/mysql.sock 和 hostname.pid
代码如下 复制代码
不能创建 mysqlsocklock是怎么回事
两种情况:
第一,安装目录是否有读的权限,如果没有,重新设置目录权限;
第二,根据名字,这个文件是用来检测是否已经安装的,你可到安装目录下查找这个文件,删除以后重新安装试试
Mac OS X苹果系统中怎么将mysql完全卸载掉
有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。
1. check table 和 repair table
登陆mysql 终端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:
repair table tabTest;
进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk适用于MYISAM类型的数枣绝据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchk tablename.MYI
进行检测,如果需要修复的话,凳粗姿可以使用:
myisamchk -of tablename.MYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:
[ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己凳慎的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。
需要注意的时,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!检测修复所有数据库(表)
本文地址:https://gpu.xuandashi.com/73119.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!