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

2016-02-19 15:27 37 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.

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

具体操作如下:

我们不妨先看看/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

                    break;

            else

                    sleep 1;

            fi

            done

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

                    echo "Timeout error occurred trying to start MySQL

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)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

   把下面这行

   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  ]

  这样就可以了.

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

延伸阅读
标签: iphone
iTunes作为日常果粉管理iPhone、下载和安装应用的常用工具,但有时在登录iTunes时不能正常登录,会显示错误-50。这时的解决办法是通过删除电脑中的iTunesPrefs.xml文件来解决。具体操作方法如下: 第一步,先在电脑中找到iTunesPrefs.xml文件,Windows 7和Windows 8系统中的路径 C:UsersXXXXAppDataRoamingApple Comp...
标签: 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 原因是两个用户同时请求更...
  笔者兼职担任学校网络机房的管理员,在日常维护工作中经常遇到两个问题。其一,计算机经过网络克隆恢复系统后,有的机器明明只安装了一块网卡,却在Windows 98的“网络属性”中显示出两块网卡;其二,为了确保学生机的正常运行,防止意外的软件损坏,我们为每台学生机都安装了还原卡,不过这也带来了一个新的问题——杀毒软件无法...
在使用MySQL时,经常会遇到如下这些常见错误: 1.禁止访问 2.无法连接MySQL服务器 3.客户端不支持认证协议 4.在交互访问模式下密码实效的问题 5.某某主机被封锁 6.连接数量过多 7.超过内存许可范围 8.MySQL服务器已经丢失 9.网络封包过大 10.通讯错误并放弃连接 11.数据库表已被填...
标签: MySQL mysql数据库
在自己XP机器上安装的mysql的windows版本,现在putty连接在服务器上以user,password的方式来连接自己本地的mysql数据库,报错如下: java.net.SocketException: java.net.ConnectException: Connection timed out 截取部分。 网络上搜了半天居然将的都是加3306端口的什么,其实都没有用!其实问题很简单,就是XP的防火墙的问题!以后注意了,...

经验教程

735

收藏

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