我的网站有几个PHP + MySQL应用程序。 我注意到我安装了Limesurvey之后,我的网站一直非常不稳定。 myisam表每3-4天坠毁。
我在这里复制mysql日志:
110812 04:10:47 mysqld started 110812 4:10:47 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.0.77' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution 110815 23:11:02 mysqld started 110815 23:11:02 [Warning] 'user' entry '[email protected]' ignored in --skip-name-resolve mode. 110815 23:11:02 [Warning] 'user' entry '@localhost.localdomain' ignored in --skip-name-resolve mode. 110815 23:11:02 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.0.77' socket: '/var/lib/mysql/mysql.sock' port: 0 Source distribution 110815 23:14:10 [ERROR] /usr/libexec/mysqld: Table './DBXXX/TableXXX' is marked as crashed and should be repaired
正如你所看到的,08年12月12日,mysqld在端口3306上启动,它运行的时间大于3.5。 天。 然后在08/15在port0上启动另一个mysqd。
我怀疑MySQL进程访问相同的数据库表并导致崩溃。 我从来没有在我的web服务器上设置多个mysql进程,我不知道为什么在端口0上启动另一个mysqld。
以下是可能相关的my.cnf文件的一部分:
datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1 skip-locking skip-name-resolve local-infile = 0 skip-networking myisam-recover=backup,force key_buffer_size = 375M max_connections = 1200 thread_cache_size=60 interactive_timeout=1200 wait_timeout=1200 max_connect_errors=50 max_allowed_packet = 64M myisam_sort_buffer_size = 64M query_cache_limit=1M query_cache_size=64M query_cache_type=1 read_buffer_size = 256k read_rnd_buffer_size = 512k sort_buffer_size = 512k join_buffer_size=512K tmp_table_size = 64M # default is 32M = 33554432 max_heap_table_size = 64M #recommend same size as tmp_table_size bulk_insert_buffer_size = 64M #recommend same size as tmp_table_size table_cache=512 thread_concurrency=4 skip-innodb [myisamchk] key_buffer=64M sort_buffer=64M read_buffer=16M write_buffer=16M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysqldump] quick quote-names max_allowed_packet=128M
myisam设置似乎没有工作。 在整个网站发生故障之后,我不得不使用PhpMyadmin中的修复数据库function修复崩溃的表。 如果我可以做三姊妹恢复工作,这将是非常有益的
另一个我注意到的问题是停止mysqld服务需要很长时间。 和响应总是说“失败”,但我仍然可以启动mysqld服务。
MySQl版本是5.0.77
看起来我还有几天之前,这个问题再次发生。 任何人都可以帮我吗?
socket: '/var/lib/mysql/mysql.sock' port: 0 Source distribution
看起来,当你使用--skip-networking选项时,你会看到这个消息,因为你必须通过名字pipe道或Unix套接字进行连接。
你说你有多个进程,请告诉我们ps -ef | grep mysql的输出 ps -ef | grep mysql和剩余进程的my.cnf 。
每次访问数据库时,是否有太多的“帐户”试图login? 他们是不是持续不断的会议?