【问题标题】:Mysql weird connection problemmysql奇怪的连接问题
【发布时间】:2010-12-17 16:16:01
【问题描述】:

我有一个奇怪的问题。我的 ubuntu 9.04 上安装了 mysql 5.1。

我已经使用了很长时间(比如 3 个月),一切正常。直到我遇到了这个非常奇怪的问题。

当我想连接到随机数据库时,我会收到以下消息:

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    1
Current database: test_cake

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
ERROR: 
Can't connect to the server

它只发生在某些数据库中,而其他数据库则完全有用且健康。之后,如果我尝试重新启动服务器,我会得到这个。

shell> /etc/init.d/mysql restart
 * Stopping MySQL database server mysqld                                        cat: /var/run/mysqld/mysqld.pid: Permiso denegado
                                                                         [fail]
 * Starting MySQL database server mysqld                                        cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
cat: /var/run/mysqld/mysqld.pid: Permiso denegado
                                                                         [fail]
("permiso denegado" is "permission denied").

我不知道该怎么办。我更改了 /var/run/mysqld/mysqld.pid 属性但仍然无法正常工作。

谁能帮帮我?

【问题讨论】:

    标签: mysql mysql-error-2002 mysql-error-2006


    【解决方案1】:

    看看这是否可行:

    su                   (become root)
    su mysql             (become user mysql, or whatever account mysql runs as)
    cd /var/run/mysqld   (see if the directory is accessible to mysql)
    cat mysqld.pid       (see if the file is accessible)
    

    【讨论】:

    • 它是可访问的。无论如何,它发生在某些数据库上。如果我选择另一个(使用“使用”命令)我可以正常操作。
    • 其实.pid文件需要写权限。尝试“echo >>mysqld.pid #testing”作为mysql。
    • 如果文件不存在怎么办??
    • 我用的是centos
    • @NagaLokeshKannumoori:如果echo >>mysqld.pid #testing 有效,文件就会在那里。如果不是,它应该给出一个错误,这将有助于诊断。例如,user mysql 可能无法写入目录(因此更改目录所有权和权限),或者设备可能已满(因此清除不需要的文件)等.
    猜你喜欢
    • 2020-05-25
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    相关资源
    最近更新 更多