服务器是2003系统,用的mysql官方的SETUP.EXE文件安装的数据库,版本是mysql-5.0.18-win32初期一切正常,但当使用时间长后,mysql数据库数量比较多了之后,每次重启电脑MYSQL都需要很长时间才能启动完毕。我观察了下任务管理器,当启动电脑后,mysql服务器立即出现在了进程表中,但内存占用只有2M左右,CPU占用一直也很小,等待过程中mysql的内测占用缓慢增加,直到mysql内测占用增加到100M左右mysql才算正常启动完毕可用,而从2M涨到100M的时间差不多40多分钟!  这个问题让我很苦恼,每次重启电脑都需要近1小时才能正常访问。请问各位知道这是什么问题 如何解决吗?谢谢!

解决方案 »

  1.   

    mysql日志:这是从10月29日晚我重启mysql时开始的日志:081029 21:53:18 [Note] D:\Database\MySQL\MySQL Server 5.0\bin\mysqld-nt: Normal shutdown081029 21:53:20 [Warning] D:\Database\MySQL\MySQL Server 5.0\bin\mysqld-nt: Forcing close of thread 4241515  user: 'cqrce'081029 21:53:20 [Warning] D:\Database\MySQL\MySQL Server 5.0\bin\mysqld-nt: Forcing close of thread 4241110  user: 'cdxk'081029 21:53:20 [Warning] D:\Database\MySQL\MySQL Server 5.0\bin\mysqld-nt: Forcing close of thread 4241075  user: 'cdxk'081029 21:53:20 [Warning] D:\Database\MySQL\MySQL Server 5.0\bin\mysqld-nt: Forcing close of thread 4241012  user: 'cqwi'……(类似的警告大概有50条)081029 21:53:21  InnoDB: Starting shutdown...
    081029 21:53:25  InnoDB: Shutdown completed; log sequence number 0 116028612
    081029 21:53:25 [Note] D:\Database\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete081030  0:50:23  InnoDB: Started; log sequence number 0 116028612
    081030  0:50:24 [Note] D:\Database\MySQL\MySQL Server 5.0\bin\mysqld-nt: ready for connections.
    Version: '5.0.18-nt'  socket: ''  port: 3306  MySQL Community Edition (GPL)这是截止mysql启动完成后的日志。 启动时间从29日21点50一直持续到30日凌晨0点50分才完全启动好。
      

  2.   

    以下是我的my.ini文件中的非注释内容:
    [client]port=3306[mysql]default-character-set=gbk
    [mysqld]port=3306
    basedir="D:/Database/MySQL/MySQL Server 5.0/"datadir="D:/Database/MySQL/MySQL Server 5.0/Data/"
    default-character-set=gbkdefault-storage-engine=MyISAMsql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"max_connections=800
    #wait_timeout=10
    max_connect_errors=100query_cache_size=81Mtable_cache=5000tmp_table_size=29M
    thread_cache_size=38myisam_max_sort_file_size=100Gmyisam_max_extra_sort_file_size=100Gmyisam_sort_buffer_size=29Mkey_buffer_size=225Mread_buffer_size=64K
    read_rnd_buffer_size=256Ksort_buffer_size=256K
    innodb_additional_mem_pool_size=10Minnodb_flush_log_at_trx_commit=1innodb_log_buffer_size=5Minnodb_buffer_pool_size=455Minnodb_log_file_size=91Minnodb_thread_concurrency=8真心感谢各位高手!!!
      

  3.   

    呵呵,我看不出啥问题,等待下面的高手吧,
    看你的配置,估计你机器的物理内存在2G或2G以上吧。不过,有可能是你的机器其他服务和mysql服务争抢资源(仅仅是有可能)。
      

  4.   

    在等待MYSQL启动的期间,服务器CPU复核很小的,CPU空闲率在90%左右,而MYSQL仅占了1%左右,MYSQL暂用的内存从2M缓慢增加,直到增加到100M左右MYSQL才真正可用。我完全搞不懂了。
      

  5.   

    你的mysql怎么会有那么多用户阿按下边步骤试试看
    1,在[mysqld]下边加上 skip-name-resolve
    2,停止服务
    3,断开网络
    4,启动服务另外,
    thread_cache_size=38 
    read_buffer_size=64K 
    read_rnd_buffer_size=256K 
    sort_buffer_size=256K 
    这些我觉得都可以试着放大了
      

  6.   

    至于这个有关系。innodb_log_file_size=91M 
    搞小点。
    直接用默认的大小就可以了。
    而且你的innodb_log_buffer_size=5M 才这么点?
    搞大点。
      

  7.   

    顶一下,我也遇到和楼主一样的问题,每次重启服务器,MYSQL都是要很长时间才正常.系统WIN 2003  MYSQL版本和LZ一样.其他情况等我查看一下 ,现在没时间,先顶上来回头再说
      

  8.   

    XP系统启动打开一个程序反应慢,排除病毒影响外,还应注意以下几点:
      1、根据你系统的配置,内存较小,只有256MB,建议将虚拟内存设置稍大一点(虚拟内存设置为物理内存的1.5至2.0倍)。
      2、删除不用的文件,如驱动器备份
      “\windows\Drivercache\i386”文件夹中的“Driver.cab”文件约70MB;“\windows\System32\Dllcache”文件夹中的备用DLL文件,约200MB和“\windows\ime”文件夹中不用的输入法文件,如日文、韩文和繁体中文的输入法。
      2、让SFC命令释放更多空间。当然你要确认你在系统中不会加入设备才使用此法。(对系统不熟者慎用)
      3、关闭华特医生。在“开始”——“运行”中输入“drwtsn32"命令,激活华特医生程序,在这里只保留“转储全部线程上下文”选项。否则系统一旦出错,硬盘读取时间就会很久,并占用大量硬盘空间。
      4、关闭休眠功能。
      5、清除硬盘垃圾,如“tmp”、“bak”、“log”、“old”、“txt”等。
      6、优化内存。
       1)、关闭系统还原功能;
       2)、关闭自动更新功能;
       3)、关闭远程桌面功能;
       4)、优化视觉效果设置;
       5)、优化启动和故障恢复设置;
       6)、禁用“错误汇报”功能;
       7)、关闭“internet时间同步”功能;
       8)、整理你的内存。
      7、对WINDOWS服务进行清理。如要简单,使用超级兔子或优化大师进行设置即可,否则你将只有逐项关闭不用的服务,以节省系统资源。
      8、把IDE设备设置为DMA传输模式。在设备管理器中,把IDE设备全部设置成“若DMA可用”,点击确定。
      9、减少系统启动项目。在启动设置中,禁用不必要的启动项目,以节省系统资源。
      通过以上设置,你系统将会有所好转的。
      

  9.   

    安装MYSQL时候会自动生成几个MY.INI配置文件,如果LZ的机器是2G的话用HUGE的那个配置应该没问题了