linux 修改连接数(tomcat默认连接数)
大家好,感谢邀请,今天来为大家分享一下linux 修改连接数的问题,以及和tomcat默认连接数的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
有人说linux的TCP连接数量最大不能超过65535个吗,是真的吗
linux的TCP连接数量最大不能超过65535个,这种说法是错误的。
一、TCP最大连接数和端口数量没有必然联系
TCP连接是服务器IP端口和客户端IP端口组成的,对于服务器而言,一般一个服务器只监听一个端口,而客户端是可以不计其数的。一个连接由一个5元组决定(protocol,local IP,local port,remote ip,remote port),对于TCP,protocol固定是TCP,还有四个元素。对于服务器来说,local port一般是固定的,比如HTTP(80),但是remote ip和remote port没有限制。也就是说,可以有百万千万的并发。如果并发量能达到百万千万量级,那么不会只有一个服务器,一般都会是一个服务集群。
二、TCP连接数是和内存正成比的
客户端和服务器建立的每个TCP连接都会占用服务器内存,所以最大TCP连接数和内存成正比。简单估算为最大内存除以单TCP连接占用的最小内存。
三、linux对tcp数量限制是为了文件管理方便
1、Linux操作系统中,一切都是文件。所以每个TCP连接,都会打开一个文件。为此Linux操作系统限制了每个用户能打开的文件数量,通过ulimit-n查看。当然,我们也可以对此进行修改,修改方式如下:
vi/etc/security/limits.conf文件,在文件中添加如下行(限制修改为10240):
speng soft nofile 10240
speng hard nofile 10240
2、Linux操作系统对所有用户最大能打开文件的限制:cat/proc/sys/fs/file-max。
3.网络核心模块对tcp连接的限制(最大不能超过65535)。
4、防火墙管理策略也会对tcp连接数量进行限制。
基于以上的原因,在Linux操作系统中,对TCP连接数量的限制依次有:端口数量限制,网络核心限制,最大文件数量限制(因为每建立一个连接就要打开一个文件),防火墙限制,用户打开文件限制。但并不存在65535这个数量限制。
mysql数据库新建连接时出现问题
解决办法:
第一步
删除c:\windows\下面的my.ini
第二步
打开c:\mysql\bin\winmysqladmin.exe输入用户名和密码
第三步在dos下输入 mysqld-nt-remove删除服务
在接着输入 mysqld-nt-install
第四步输入mysql启动成功。
其它可参考的方法:
1.看看hosts文件中localhost是不是指向127.0.0.1
2.如果是没启动mysql服务,则可运行net start mysql。
3.一些相关命令:
mysqld-nt--install#启动Mysql
mysql#运行Mysql
mysql-h ipAddress-u username-p
或者:直接去bin里点mysqld.exe或mysqld-nt.exe,看下它的进程能否正常运行,如不行,再去控制面板,服务里去启动它,看下是什么错误。如果不行,就在添加删除里删去mysql,然后再重装mysql,一般都能解决问题,可以在安装前备份一下DATA。
Error: Can't connect to MySQL server on'localhost'(10061)
Errno.: 2003
错误编号:2003
问题分析:
无法连接到 MySQL服务器,可能的情况为:
1、MySQL服务没有启动,一般是在异常的情况下 MySQL无法启动导致的,比如无可用的磁盘空间,my.ini里 MySQL的 basedir路径设置错误等;
2、MySQL服务器资源紧张,导致无法连接。
解决方法:
1、如果你是虚拟主机用户(购买的空间),则联系空间商检查 MySQL是否正常启动,并确认 MySQL的配置信息(是否为 localhost);
2、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查:
1)检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。
2)检查 my.ini里的 basedir(MySQL安装地址)和 datadir(数据目录存放地址)等参数设置是否正确,然后重新启动下 MySQL服务。
还有一种方法是将服务器的windows补丁。
微软9月9日发布了TCP/IP更新补丁(KB967723),如果服务器开启自动更新或者有自动更新软件下载更新了这个补丁,那么就会出现这个问题。
有人可能会问,为什么9号出现的补丁,到现在才发现问题?
大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能在9月9日以后重启过服务器,所以补丁生效了(我个人这么认为)。
补丁卸载方法:登录服务器,进入控制面板---添加和删除程序--(勾选上方的“显示更新”)
在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。
卸载完成后程序服务器,一切正常!
至于该补丁修补什么漏洞,卸载后是否会出现服务器安全隐患,这个先不说,要MYSQL正常运行,临时的解决办法只有如此。
还有种情况下,你可以这样解决
Discuz! info: Can not connect to MySQL server
Time: 2007-11-13 6:25pm
Script:/bbs/index.php
Error: Can't connect to MySQL server on'localhost'(10061)
Errno.: 2003
Similar error report has beed dispatched to administrator before.
正常情况下原因如下:
网站论坛访问量过大,数据库连接超过最大连接数.MYSQL数据库服务停止了.
解决方法(针对WIN系统):
1,首先到系统服务里面找到MYSQL服务并启动MYSQL服务.
2,到MYSQL安装目录找到MY.INI文件,打开MY.INI查找max_connections修改连接数为1000重启IIS与MYSQL服务.
window下
命令行下输入:
>cd E:\mysql\bin
>mysqladmin-u root password你的密码
>mysql-u root-p
Enter password:你的密码
便可以
、、、、、、、、、、、、、、、、、
找到了根本原因,在此凉一下:
导致此问题的根源在:因为给mysql的root设置了密码,而不是最初安装好时的密码为空,所以使用
mysqladmin version这样子不行了,必须这样子:mysqladmin-uroot-p version,回车后按照提示要求输入
root密码即可成功运行命令。
第一种方法其实就是在不知道root密码的情况下的一种解决办法,那样子启动不用密码即可进mysql
里面并进行root密码的修改,解决忘记了root密码的问题。
输入命令“mysqladmin-u root password你的密码”作用是修改root用户的密码,这条命令能够不经
提示输入原密码而成功执行,也说明了原密码是空。之后使用修改后的密码自然能够成功登录。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。怎么更改密码?
首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码
,除非请求管理员。
方法一
使用phpmyadmin,这是最简单的了,修改mysql库的user表,
不过别忘了使用PASSWORD函数。
方法二
使用mysqladmin,这是前面声明的一个特例。
mysqladmin-u root-p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
那么这种方法就是无效的。
而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
mysql> INSERT INTO mysql.user(Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
在《mysql中文参考手册》里有这个例子,所以我也就写出来了。
注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
方法四
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user(Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
方法五
使用SET PASSWORD语句,
mysql> SET PASSWORD FOR"= PASSWORD('biscuit');
拟也必须使用PASSWORD()函数,
但是不需要使用FLUSH PRIVILEGES。
方法六
使用GRANT... IDENTIFIED BY语句
mysql> GRANT USAGE ON*.* TO" IDENTIFIED BY'biscuit';
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。
MySQL忘记口令的解决办法
如果 MySQL正在运行,首先杀之: killall-TERM mysqld。
启动 MySQL:bin/safe_mysqld--skip-grant-tables&
就可以不需要密码就进入 MySQL了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新杀 MySQL,用正常方法启动 MySQL。
linux下
方法一:
#/etc/init.d/mysql stop
# mysqld_safe--user=mysql--skip-grant-tables--skip-networking&
# mysql-u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILE
linux系统连接数linux连接数设置
linux系统,如何设置最大网络连接数量?
linux设置最大网络连接数量有很多中方法:r1、直接用ulimit命令rulimit-n8192rr2、修改/proc/sys/net/ipv4/ip_conntrack_max为8192r或者是/etc/sysctl.conf中加入ip_conntrack_max=8192rr3、请首先编辑/usr/include/bits/types.h文件,改变__FD_SETSIZE的值:r#define__FD_SETSIZE8192rr下一步,使用这个命令增加内核文件描述符的限制:r#echo8192>/proc/sys/fs/file-maxrr最后,增加进程文件描述符的限制,在即将编译squid的同一个shell里执行:rsh#ulimit-Hn8192