OpenWrt安装MySQL偶尔开机丢失/var/lib/mysql/mysql.sock找不到mysql.sock
MT7688开发板第二次开机的时候,MySQL无法启动,于是在OpenWrt执行
mysql -u root -p
出现ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
按照网上的解决方法,依次排查
1、先查看/etc/rc.d/init.d/mysqld status看看mys ql是否已经启动.另外看看是不是权限问题.
2、确定你的mysql.sock是不是在那个位置,
mysql -u你的mysql用户名-p -S /var/lib/mysql/mysql.sock
3、试试:
service mysqld start
4、如果是权限问题,则先改变权限
#chown -R mysql:mysql /var/lib/mysql
二、可能的原因
第一种情况
1、如果是偶尔会出现mysql的server和mysql的client默认的socke文件不在一个地方,我们用mysql时会出现一个找不到mysql.sock的情况。
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、因非正常关机出现:/tmp/mysql.sock 不见了,找不到了,如何连接上去的问题?(其他机器通过tcp可以的)。
连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。
如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。
找不到mysql.sock,mysql.sock丢失问题解决方法
一、解决var/run/mysqld没有pid和sock文件
MySQL下mysql.sock丢失丢失的原因一般是因为配置文件不一致的原因,mysqld 错误启动,mysqld_safe 会清除一次mysql.sock 。解决方法是:
判断一般人解决故障时没有切换到mysql用户,造成权限有问题,无法创建mysql授权表,所以也就无法创建/tmp/mysql.sock 和hostname.pid文件。因此,总结解决方法如下:
#su mysql // root 用户也是可以的 $/usr/local/bin/mysql_install_db //到bin目录执行,重建授权表 $/usr/local/bin/mysqld_safe & mysql -uroot -p //测试 mysq>bye; $
文件已经解决,重新生成新的 /tmp/mysql.sock 和 hostname.pid
var/ $su root
二、解决mysql.sock文件路径不对
1.在/var/lib/mysql创建一个link:ln -s /var/lib/mysql/mysql.sock /path/to/mysql/mysql.sock
2.在root权限下修改my.cnf文件(/etc/mysql/my.cnf),指定正确的路径
3.1和2任选其一就可以
点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)
饿了么红包
本站附件分享,如果附件失效,可以去找找看