linux下MYSQL常见两个错误的解决办法

18633429786aaa

18633429786aaa

2016-02-19 15:27

今天图老师小编要向大家分享个linux下MYSQL常见两个错误的解决办法教程,过程简单易学,相信聪明的你一定能轻松get!

问题1:登录mysql的错误

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解决方法:

1)默认的mysql.sock文件是在/tmp目录下。
2)我们建立一个软连接,ln -s /tmp/mysql.sock  /var/lib/mysql/mysql.sock

问题2:Timeout error occurred trying to start MySQL Daemon.
#/etc/init.d/mysqld restart
stopping mysql     [ok]
Timeout error occurred trying to start MySQL Daemon.  [failure] 
但是这个时候mysql实际上已经起动了,因为用netstat -ln命令去看3306端口已经起动.使用mysql -u root -p password也能连接到数据库.

解决方法:

修改/etc/init.d/mysqld.
在mysql里创建dameon用户,然后再修改/etc/init.d/mysqld.

具体操作如下:

我们不妨先看看/etc/init.d/mysqld起动脚本是如何工作的,注意下面的一段

# If you've removed anonymous users, this line must be changed to

        # use a user that is allowed to ping mysqld.

        ping="/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping"

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

        # Spin for a maximum of ten seconds waiting for the server to come up

        if [ $ret -eq 0 ]; then

            for x in 1 2 3 4 5 6 7 8 9 10; do

            if [ -n "`$ping 2 /dev/null`" ]; then

                    break;

            else

                    sleep 1;

            fi

            done

            if !([ -n "`$ping 2 /dev/null`" ]); then

                    echo "Timeout error occurred trying to start MySQL

Daemon."                    action $"Starting $prog: " /bin/false

            else

                    action $"Starting $prog: " /bin/true

            fi

        else

            action $"Starting $prog: " /bin/false

        fi

        [ $ret -eq 0 ] && touch /var/lock/subsys/mysqld

        return $ret   

    我们看到,脚本判断mysql是否起动,使用的是mysqladmin ping命令.

    而这个命令想要正确执行是需要能够登录mysql的.现在一些默认帐号已经删除,而且其它帐号已经设置了密码(默认没有设置密码).于是它没有办法连接到mysql.
   于是我用了下面的办法解决.

   a)建立一个帐号,不设置密码,不给任何权限.

   b)修改/etc/init.d/mysqld

   下面我给出具体操作

   #mysql -u root -p passwd

   mysqlGRANT select ON test.* TO daemon@localhost

   mysqlrevoke select on test.* from daemon@localhost 

   vi打开/etc/init.d/mysqld

   把下面这行

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

   ping="/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping" 

   修改为

   ping="/usr/bin/mysqladmin -udaemon ping" 

  保存,退出.

  重新起动mysql

  #/etc/init.d/mysqld restart

  Stopping MySQL:                                            [  OK  ]

  Starting MySQL:                                            [  OK  ]

  这样就可以了.

展开更多 50%)
分享

猜你喜欢

linux下MYSQL常见两个错误的解决办法

编程语言 网络编程
linux下MYSQL常见两个错误的解决办法

IIS常见错误解决办法

电脑入门
IIS常见错误解决办法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

mysql出现Error Code:1418 错误的解决办法

编程语言 网络编程
mysql出现Error Code:1418 错误的解决办法

CAD绘图作业中的常见错误以及解决办法

cad教程 autocad教程 CAD
CAD绘图作业中的常见错误以及解决办法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MySQL 忘记口令的解决办法

MySQL mysql数据库
MySQL 忘记口令的解决办法

在ASP中常见的错误80004005信息和解决办法

ASP
在ASP中常见的错误80004005信息和解决办法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

MySQL教程:Group By用法

MySQL教程:Group By用法

MySQL server has gone away问题原因

MySQL server has gone away问题原因
下拉加载更多内容 ↓