启动mysql错误解决方案,学会查看错误日志:mysql.sock丢失,mysqld_safe启动报错
转载自:http://www.cnblogs.com/super-lucky/p/superlucky.html
本人还是个菜鸟,下面是我的经验之谈,能解决一些问题,有不对的地方,敬请斧正。
我的是CentOS6.3+MySQL5.1.57。
重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
于是,我检察mysql状态:
> /etc/rc.d/init.d/mysqld status
显示stop,未运行。
>/etc/rc.d/init.d/mysqld restart
Stopping mysqld: [ OK ]
MySQL Daemon failed to start.
Starting mysqld: [ FAILED]
>ps -ef | grep mysql
root 28221 27474 0 14:18 pts/0 00:00:00 grep mysql 只有这一条
至此,我可以确定,mysql无法启动。
我开始排错,首先发现/tmp/mysql.sock不存在
>vim /etc/my.cnf
socket=/var/lib/mysql/mysql .sock
/var/lib/mysql/mysql .sock同样不存在
>find / -name mysql.sock
显示为空,未查询到mysql.sock文件,mysql.sock文件丢失了。
我看网上有人说mysql.sock套接字文件可以简单地通过重启服务器重新创建得到它,
>init 6 重启命令
重启后发现错误还是那样,没有任何改变,mysql.sock重启服务器未自动生成。
接下来了解到mysql.sock是一个临时文件,在mysql启动时会自动生成,我的服务器未启动,自然就没有mysql.sock文件。
我尝试安全启动模式,mysqld_safe试图通过工作目录找到服务器和数据库,但mysqld_safe还是失败。
>mysqld_safe &
Starting mysqld daemon with databases from ....../mysql/var
STOPPING server from pid file .......pid
130802 15:17:11 mysqld ended
各种命令尝试无效的情况下,我开始了本次最大的收获----学会看错误日志。
在错误日志中,启动失败的原因极为明显,file ‘./mysql-bin。000004’ not found,failed to open!
mysql开启了bin日志功能,到数据库根目录查看该文件是存在的,可能是文件权限的问题。
>chown -R mysql:mysql /....../mysql/var
>mysqld_safe &
>/etc/rc.d/init.d/mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK]
成功启动了!~
此时mysql.sock文件出现了,在/var/lib/mysql/mysql .sock。如下图所示,以”s”开头的文件都是socket文件。
> mysql -u root -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
/tmp/mysql.sock
解决这个错误很简单,因为/tmp/mysql.sock不存在,用这样的方法:
>ln -s /var/lib/mysql/mysql .sock /tmp/mysql .sock
以”l”开头的文件是软链接文件。或者可以通过修改/etc/my.cnf文件来修正它。
成功解决了!~
就是这样一个问题折腾了我这么久,错误日志让它无所遁形。查看错误日志可以明确问题所在,而不是像我之前那样盲目的找错。
俗话说授人以鱼不如授人以渔,学会查看日志,你也可以方便快捷的解决问题了。
错误使人进步,我与这个错误斗争了四个多小时,对linux的“一切皆文件”这句话有了更深的了解,对我学习文件系统管理(目录树)有很大的帮助,让我的思维真正的从windows操作系统转向成linux系统。并最终解决问题,很有成就感,我喜欢这种感觉。
希望能对阅读的你有所帮助,谢谢!~
相关推荐
3、Can’t connect to local MySQL server through socket ‘/Data/mydata/mysql.sock’ socket文件目录不对应导致的问题 4、今天要说的就是 没有打开only_full_group_by Cause:...
之前在网上看过好多关于mysql.sock不见的问题,并没有关注这个东西存在的意义,直到自己的mysql也出现了相同的问题。让人纠结了一把…… 代码如下:zhouqian@zhou:~$ mysqlERROR 2002 (HY000): Can’t connect to ...
4.4 启动mysql_safe # bin/mysqld_safe --user=mysql & 4.5 设置MySQL的root帐号密码 - 自动设置:# ./bin/mysql_secure_installation 或 - 手动置:# ./bin/mysqladmin -u root password '<PASSWORDHERE>' -------...
服务器断电后重启,导致MySQL连接失败。mysql.sock文件丢失,innodb引擎表损坏,最直接的解决办法。
废话不多说了,直奔主题了。...mysql -S /tmp/mysql.sock 2、mysqld_safe 启动mysql服务器:./mysqld_safe –defaults-file=/etc/my.cnf –user=root & 客户端连接: mysql --defaults-file=/etc/my.cnf or mysql -S /t
报错信息: ERROR 2002: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (111) ...其实提示找不到 /tmp/mysql.sock有时也并不是/tmp目录下没这个文件,是启动命令不对。 /u
CentOS7 下安装 mysql8 的详细步骤 使用的 rpm 源码安装方式,每一步都有详细的命令演示和问题解决 出现的 .sock 问题解决详细步骤 包含 CentOS9 stream 的 mysql8 安装过程中的问题描述和解决办法
最近在linux上装mysql时遇到一些棘手的问题,百思不得其解,下面小编给大家带来了linux下安装mysql及mysql.sock问题,感兴趣的朋友一起看看吧
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=/data/mysql -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost_1_59_0 -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DMYSQL_TCP_...
Win32 上安装 MySQL 4.12.2 在 Win95 /Win98上启动 MySQL 4.12.3 在 NT 上启动 MySQL 4.12.4 在 Win32 上运行 MySQL 4.12.5 用 SSH 从 Win32 连接一个远程MySQL 4.12.6 MySQL-Win32与Unix ...
5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建...
socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid datadir=/mysql/data tmpdir=/mysql/tmp innodb_data_file_path=ibdata1:1G;ibdata2:1G;ibdata3:1G:...
5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建...
5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建...
socket =/tmp/mysql.sock [mysql] no-auto-rehash prompt="\u@\h [\d]>" #pager="less -i -n -S" #tee=/opt/mysql/query.log [mysqld] user = mysql basedir = /usr/local/mysql datadir = /data/mysql/mysql3306/...
Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建...
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 出现问题原因: 有可能是 my.cnf 配置文件中设置了 [mysqld] 的参数 socket ,而没有设置[client]的参数socket ...
5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建...
其实提示找不到 /tmp/mysql.sock有时也并不是/tmp目录下没这个文件,是启动 命令不对,我碰到过 常见的几种启动方式,自己也不是记得很清楚,如果你确定tmp下有mysql.sock这 个文件不妨试试另外的几个命令 /usr/...