服务器mysql数据库老自动停止,请问怎么回事 |
您所在的位置:网站首页 › 服务器自动启动mysql › 服务器mysql数据库老自动停止,请问怎么回事 |
分析原因一:Mysql的自动备份功能可能导致数据库在备份的时候先关闭服务,而在此启动的时候服务器不响应, 开始-运行-services.msc,打开windows服务找到mysql的服务并双击,点击恢复选项卡,第一次失败:默认是“不操作”,改成”重新启动服务”。 在下方的“重新启动服务:分钟后”添上“0”表示如果服务意外终止则立即重启动。点击确定使设置生效。这时候你在任务管理器里结束mysql-nt进程,会发现结束不掉,不过要注意,这样mysql.exe是停不了的,如果要停必须把刚才修改的改回来.) 分析原因二,可能是mysql连接问题 修改mysql的最大连接数, 使用内存变量修改法修改mysql的最大连接数 步骤如下(同时适用windows和linux平台): a、客户端登录mysql,输入用户名和密码’b、在mysql命令提示符下设置新的最大连接数为500:mysqlset global max_connections=500 c、显示当前运行的query:mysqlshow processlist d、显示当前mysql 系统参数状态:mysqlshow status# k e、退出客户端:mysqlexit’ 查看当前最大连接数只需要通过在mysqladmin所在目录下执行以下命令:mysqladmin -username -password variables |find “max_con” 即可看到。也可以使用php教程myadmin里头的mysql参数列表查看最大连接数。 缺点:重启计算机或者mysql后最大连接数又会复位成初始值,需要重新设定。 2、修改my.ini或my.cnf文件法(需要重启mysql),可参考同目录下mysql的配置模板(小内存、大内存、超大内存). e windows系统下打开my.ini文件找到set-variable =max_connections=100这一行,改成需要设定的最大连接数,然后重启即可。 linux控制台下: 1、打开my.cnf文件:vi /etc/my.cnf 2 在[mysqld]段下修改max_connections的值为设定值。 注意: 可能大家安装的mysql来源和版本不同(windows下mysql+iis和php+apache+mysql套件最终安装结果几乎都不相同),my.ini文件的路径可能有些不同,my.ini可能还会保留一份在c:windows目录下需要同时修改 今天发现网站有点慢,发现mysql日志中提示mysqld-nt:Out of memory (Needed 1677720 bytes),经排查是由于最近调整了mysql的一些参数导致,以为内存大就不怕了,32位系统真心内容利用率很低,据说不超过4G,我们的32G内存真浪费了,以后还是使用win2008 r2或centos系统做服务器吧。废话不多说下面为大家分享下解决方法: 因为mysql版本不同可能配置略有区别,主要就是设置如下参数 key_buffer、key_buffer_size、read_buffer_size、sort_buffer_size记住了有这个参数的就改,没有也不要添加。修改后一般是降低,然后重启mysql服务即可。 核心提示:检查mysqld配置my.conf,着重看key_buffer_size, max_heap_table_size, tmp_table_size几个参数,推荐设置key_buffer_size值为max_heap_table_size的1/4. 因为服务器内存而大富余比较多,前些天把my.conf里的好几个参数调得相当大,1G甚至2G,但并不稳定,mysqld报出过几次Out of memory (Needed xxx bytes)这样的错误,分析原因时,想到是32位linux系统上的linux不支持PAE,不能使用超过3G以上的内存,所以把改大的几个参数适当改小了点,最大也只有几百M的样子,但还是出现过几次Out of memory错误。于是网上多方查询,后来受到公式 key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections 的启发,两次检查了key_buffer_size, max_heap_table_size, tmp_table_size几个参数,发现这三个值的设置是一样的,竟然都是512M! 于是改小key_buffer_size到128M,重启mysqld接下来5个小时的监测,没有再发生类似错误。 改了这几个参数后,还是有一条是Out of memory ,继续检查,发现innodb_buffer_pool_size = 1512M,于是我改为1000M,再启Mysql居然好了。 注:这台服务器一共了才3G内存:最终大至如下 key_buffer = 200M key_buffer_size = 1294963200 #max_join_size = 4294967295 max_join_size = 1294967295 max_allowed_packet = 1M #table_open_cache = 512 table_cache = 512 sort_buffer_size = 2294967295 read_buffer_size = 2147479552 #write_buffer_size = 4294967295 read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M php错误Fatal error: Out of memory (allocated 262144) (tried to allocate 19456 bytes php运行一段时候后出现错误: php错误Fatal error: Out of memory (allocated 262144) (tried to allocate 19456 bytes 意思是说:致命错误,超出内存,已经分配allocated 262144,尝试分配19456 字节。 解决方法是修改php.ini,加大memory_limit 刚刚着实吓我一跳,html可以正常访问,php不行,我还以为是受攻击呢。 后来看到www.blogguy.cn 上不去了Fatal error: Out of memory (allocated 262144) (tried to allocate 19456 bytes,知道是内存不足导致的,可是vps也连不上去,也看不到到底是谁在占内存,只能进网站后台重启vps,就不知道问题出在哪儿了。记录下来备案! 修改方法 修改php.ini 如下的区域 max_execution_time = 120 Maximum execution time of each script, in seconds max_input_time = 60 Maximum amount of time each script may spend parsing request data memory_limit = 64M Maximum amount of memory a script may consume (64MB) 根据需要调整。 重启一下apache就可以了。 一、mysqld 进程没有正常运行遇到这种情况首先到服务器上看看 mysqld 进程是否活着,采用的命令:二、客户端不能和进程 mysqld 通信如果 MySQL 服务器上的 mysqld 进程运行正常,我们再看看客户端能不能和 mysqld 进行通信,使用下面的命令进行网络连通的测试:telnet localhost 3306 如果本地能通,再到客户端的机器上把 localhost 换成 MySQL 服务器的 ip 地址进行测试。如果不能通,通常有两种原因,一种原因是 OS 或网络的问题,或者是防火墙;另一种原因是 mysqld 自身根本没有侦听客户端的连接请求, mysqld 启动后对于客户端的侦听是分三种情况。 第一种情况 是使用参数 --skip-networking 跳过侦听客户端的网络连接,用下面的命令我们可以看到 MySQL 根本没有侦听 3306 端口。 第二种情况 使用参数 --bind-address 后面增加对客户端访问 IP 地址的限制,例如只侦听本地的连接 三、账户密码的问题最后一种情况是账户密码的问题,应付这种情况我们有个有力的工具就是查看 MySQL 的 error log, error log 记载信息的详细程度上由参数 --log-error-verbosity 进行控制的 欢迎分享,转载请注明来源:内存溢出 原文地址:https://outofmemory.cn/zaji/8698010.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |