Ubuntu下MySQL启动不了的解决办法

我发现Ubuntu服务器上的MySQL数据库被锁定,我尝试使用servicemysqlrestart启动它。
结果,MySQL停止时又回到了停止/等待状态。
使用servicemysqlstatus检查后,显示“mysqlrespawn/post-start”并且无法启动。
在网上寻找解决方案没有成功。
最后,我在Ubuntu中使用了mysql配置修复命令dpkg-reconfiguremysql-server-5.1。
运行该命令后,通过在提示界面中重置root密码,MySQL奇迹般地启动成功。
关于MySQL启动排查过程,请分享以下技巧:1、使用apt-getinstallmysql命令安装MySQL后,如果遇到启动错误,可以尝试使用dpkg-reconfigure命令重新配置并修复问题。
2、使用dpkg-reconfigure修复MySQL后,mysql用户数据可能会丢失,需要修复服务器上原有的mysql用户。
通过运行以下命令恢复用户:GRANTALLPRIVILEGESONdb.*TOuser@localhostIDENTIFIEDBY"pass"此步骤可确保恢复原始系统上的用户。
3、以此类推,如果Ubuntu环境下通过apt-getinstall安装的软件包出现问题,使用dpkg-reconfigure命令进行修复,可以修复各种软件包问题,达到事半功倍的效果。

数据库服务无法启动,查看日志报的这个错误,谁知道怎么解决

我还是个初学者,所以以下是我的经验,可能会解决一些问题。
如果有什么不对的地方,请指正。
我的是CentOS6.3+MySQL5.1.57。
重启服务器后,使用>mysql-uroot-p登录时出现以下错误:ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2)于是,我检查了mysql的状态:>/etc/rc.d/init.d/mysqldstatus显示停止且未运行。
>/etc/rc.d/init.d/mysqldrestartStoppingmysqld:[OK]MySQLDaemonfailedtostart.Startingmysqld:[FAILED]>ps-ef|grepmysqlroot2822127474014:18pts/000:00:00grepmysql到目前为止只有这个我可以确认mysql无法启动。
开始排查,发现/tmp/mysql.sock不存在>vim/etc/my.cnfsocket=/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock不存在>find/-namemysql.sock显示为空,不查询mysql.sock文件,查询mysql.sock文件丢失的。
我在网上看到有人说可以通过重新启动服务器来简单地重新创建mysql.sock套接字文件,然后用>init6restart命令重新启动后,我发现错误仍然是相同的,没有任何变化,它不是自动生成的。
重新启动服务器。
后来了解到mysql.sock是一个临时文件,是mysql启动时自动生成的。
我的服务器没有启动,所以自然没有mysql.sock文件。
我尝试了安全启动模式,mysqld_safe尝试通过工作目录找到服务器和数据库,但mysqld_safe仍然失败。
>mysqld_safe&Startingmysqlddaemonwithdatabasesfrom.../mysql/varSTOPPINGserverfrompidfile...pid13080215:17:11mysqldending当多次命令尝试失败时,这次开始最大的收获:学习读取错误日志。
错误日志中,启动失败的原因极其明显,file‘./mysql-bin.000004'未找到,打开失败!Mysql启用了bin日志功能。
进入数据库根目录验证该文件是否存在。
这可能是文件权限问题。
>chown-Rmysql:mysql/....../mysql/var>mysqld_safe&>/etc/rc.d/init.d/mysqldrestartStoppingmysqld:[OK]Startingmysqld:[OK]启动成功!~您现在可以看到mysql.sock文件,位于/var/lib/mysql/mysql.sock中。
如下图所示,以“s”开头的文件都是socket文件。
>mysql-uroot-pERROR2002(HY000):UnabletoconnecttolocalMySQLserverviasocket'/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系统。
而且最终解决问题的感觉很满足,我喜欢这种感觉。
希望阅读对您有用,谢谢!~