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

2016-02-19 15:27 29 1 收藏

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

【 tulaoshi.com - 编程语言 】

问题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"

        # 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

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

                    break;

            else

                    sleep 1;

            fi

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

            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

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

        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

   把下面这行

   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  ]

  这样就可以了.

来源:https://www.tulaoshi.com/n/20160219/1609667.html

延伸阅读
标签: 服务器
linux下xhost命令报错:unable to open display的解决办法   linux下执行xhost命令报错:unable to open display,解决方法,linux 下通过xhost进入图形界面,经常会出现报错unable to open display linux下的操作步骤如下: 1、复制代码: 复制内容到剪贴板 [root@localhost ~]# vncserver New 'localhost:...
  笔者兼职担任学校网络机房的管理员,在日常维护工作中经常遇到两个问题。其一,计算机经过网络克隆恢复系统后,有的机器明明只安装了一块网卡,却在Windows 98的“网络属性”中显示出两块网卡;其二,为了确保学生机的正常运行,防止意外的软件损坏,我们为每台学生机都安装了还原卡,不过这也带来了一个新的问题——杀毒软件无法...
标签: ASP
  此错误具体信息如下: Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time. /default.asp, 行43 原因是两个用户同时请求更...
标签: MySQL mysql数据库
在自己XP机器上安装的mysql的windows版本,现在putty连接在服务器上以user,password的方式来连接自己本地的mysql数据库,报错如下: java.net.SocketException: java.net.ConnectException: Connection timed out 截取部分。 网络上搜了半天居然将的都是加3306端口的什么,其实都没有用!其实问题很简单,就是XP的防火墙的问题!以后注意了,...
  电脑问题:在上网的时候,一打开网页就会出现无法显示网页,页面中会提示“找不到服务器 DNS错误。   解决方法: (1)右键单击网上邻居,选择属性。     (2)右键单击自己所进行连接网络的图标(小编用的是无线网络,所...

经验教程

764

收藏

100
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部