设置mysql的最大连接数

MYSQL 数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,虽然通过连接池可以将连接数设置为固定的100,可 是在下那BT同事将所有的连接池都设置成了100,话说我们小组有5个人……再话说,个人调试有必要设置那么高么……不过牢骚归牢骚,问题依然需要解决。

方 法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100   修改为 max_connections=1000 服务里重起MYSQL即可。此方法用于Windows下的mysql设置,简单方便。如果是Linux的话,请看下面。

方法二:MySQL的最大连接数默认是100

客户端登录:mysql -uroot -p

设置新的最大连接数为1000:mysql> set GLOBAL max_connections=1000

显示当前运行的Query:mysql> show processlist

显示当前状态:mysql> show status

退出客户端:mysql> exit

查看当前最大连接数:mysqladmin -uroot -p variables

这个办法治标不治本,重启服务以后最大连接数还是100。这个方法用于紧急扩充最大连接数用,不是长久之计。

方法三:以centos 5.4 下面的mysql 5.0.83 rpm版本为例说明:

找到/usr/bin/mysqld_safe编辑它,找到mysqld启动的那两行,在后面加上参数 :

-O max_connections=1000

用红字特别说明:

if test -z "$args"
  then
   
$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION --pid-file=$pid_file
--skip-external-locking -O max_connections=1000 >> $err_log 2>&1
  else
    ev al
"$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION --pid-file=$pid_file
--skip-external-locking $args -O max_connections=1000 >> $err_log 2>&1"
  fi

这段代码很不好找,在下也无法说清楚它具体在哪个位置。不过建议从最后往前找会比较快。

重启mysql服务:# service mysql restart

查看当前最大连接数:# /usr/local/mysql/bin/mysqladmin -uroot -p variables

输入root数据库账号的密码后可看到

max_connections 1000 即新改动已经生效。

第四种方法:修改mysqld的启动文件/etc/init.d/mysqld 在start()函数末尾添加代码

mysql -e ‘set GLOBAL max_connections=1000;‘如

start(){
    [ -x $exec ] || exit 5
    # check to see if it‘s already running
    RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
    if [ $? = 0 ]; then
        # already running, do nothing
        action $"Starting $prog: " /bin/true
        ret=0
    elif echo "$RESPONSE" | grep -q "Access denied for user"
    then
        # already running, do nothing
        action $"Starting $prog: " /bin/true
        ret=0
    else
        # prepare for start
        touch "$errlogfile"
        chown mysql:mysql "$errlogfile"
        chmod 0640 "$errlogfile"
        [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
        if [ ! -d "$datadir/mysql" ] ; then
            # First, make sure $datadir is there with correct permissions
            if [ ! -e "$datadir" -a ! -h "$datadir" ]
            then
                mkdir -p "$datadir" || exit 1
            fi
            chown mysql:mysql "$datadir"
            chmod 0755 "$datadir"
            [ -x /sbin/restorecon ] && /sbin/restorecon "$datadir"
            # Now create the database
            action $"Initializing MySQL database: " /usr/bin/mysql_install_db --datadir="$datadir" --user=mysql
            ret=$?
            chown -R mysql:mysql "$datadir"
            if [ $ret -ne 0 ] ; then
                return $ret
            fi
        fi
        chown mysql:mysql "$datadir"
        chmod 0755 "$datadir"
        # Pass all the options determined above, to ensure consistent behavior.
        # In many cases mysqld_safe would arrive at the same conclusions anyway
        # but we need to be sure.  (An exception is that we don‘t force the
        # log-error setting, since this script doesn‘t really depend on that,
        # and some users might prefer to configure logging to syslog.)
        # Note: set --basedir to prevent probes that might trigger SELinux
        # alarms, per bug #547485
        $exec   --datadir="$datadir" --socket="$socketfile" \
                --pid-file="$mypidfile" \
                --basedir=/usr --user=mysql >/dev/null 2>&1 &
        safe_pid=$!
        # Spin for a maximum of N seconds waiting for the server to come up;
        # exit the loop immediately if mysqld_safe process disappears.
        # Rather than assuming we know a valid username, accept an "access
        # denied" response as meaning the server is functioning.
        ret=0
        STARTTIMEOUT=120
        while [ $STARTTIMEOUT -gt 0 ]; do
            RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1` && break
            echo "$RESPONSE" | grep -q "Access denied for user" && break
            if ! /bin/kill -0 $safe_pid 2>/dev/null; then
                echo "MySQL Daemon failed to start."
                ret=1
                break
            fi
            sleep 1
            let STARTTIMEOUT=${STARTTIMEOUT}-1
        done
        if [ $STARTTIMEOUT -eq 0 ]; then
            echo "Timeout error occurred trying to start MySQL Daemon."
            ret=1
        fi
        if [ $ret -eq 0 ]; then
            action $"Starting $prog: " /bin/true
            touch $lockfile
        else
            action $"Starting $prog: " /bin/false
        fi
    fi
    mysql -e ‘set GLOBAL max_connections=1000;‘
    return $ret
}

时间: 2024-08-06 12:13:09

设置mysql的最大连接数的相关文章

CentOS中设置Mysql的最大连接数max_connections(用于解决too many connections的问题)

一.引入 最近一个python的定时任务系统的项目,在做定时数据统计的时候经常报错too many connections,字面意思很简单,就是数据库连接池不够用了.那么比较直接的方法就是手动设置数据库的最大连接数max_connections 二.如何配置 1.查询Mysql当前的最大连接数 mysql> show variables like "max_connections"; +-----------------+-------+ | Variable_name | Va

MySQL中的max_connections和max_user_connections 及 MySQL服务器最大连接数的合理设置

max_connections 是指整个mysql服务器的最大连接数: max_user_connections 是指每个数据库用户的最大连接数,比如:虚拟主机可以用这个参数控制每个虚拟主机用户的数据库最大连接数: MySQL服务器的连接数并不是要达到最大的100%为好,还是要具体问题具体分析,下面就对MySQL服务器最大连接数的合理设置进行了详尽的分析,供您参考. 我们经常会遇见“MySQL: ERROR 1040: Too many connections”的情况,一种是访问量确实很高,My

MySQL数据库最大连接数

MYSQL数据库安装完成后,默认最大连接数是100. 命令: show processlist; 如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接. show processlist;只列出前100条,如果想全列出请使用show full processlist; mysql> show processlist; 命令: show status;命令:show status like '%下面变量%';Aborted_clients 由于客户没有正确关闭

MySQL查看最大连接数和修改最大连接数

1.查看最大连接数 show variables like '%max_connections%'; 2.修改最大连接数 set GLOBAL max_connections = 200; 以下的文章主要是向大家介绍的是MySQL最大连接数的修改,我们大家都知道MySQL最大连接数的默认值是100, 这个数值对于并发连接很多的数据库的应用是远不够用的,当连接请求大于默认连接数后,就会出现无法连接数据库的错误,因此我们需要把它适当调大一些.在使 用MySQL数据库的时候,经常会遇到这么一个问题,就

MySQL查看当前连接数、连接数和最大连接数

MySQL查看当前所有连接的详细资料: mysqladmin -u root -p processlist MySQL查看当前连接数(Threads为连接数) mysqladmin -u root -p status Uptime: 1047464  Threads: 22  Questions: 1494780  Slow queries: 0  Opens: 31357  Flush tables: 1  Open tables: 1981  Queries per second avg:

MySQL的最大连接数

mysql的最大连接数默认是100, 这个数值对于并发连接很多的数据库应用是远远不够的,当连接请求大于默认连接数后,就会出现无法连接数据库的错误,因此我们需要把它适当调大一些 设置新的MySQL最大连接数为200:     MySQL> set GLOBAL max_connections=200 查看max_connections show variables like '%max_connections%';

mysql优化:连接数

有时候我们会遇见"MySQL: ERROR 1040: Too many connections"的异常,一种原因是訪问量过高,MySQLserver抗不住,这个时候就要考虑添加从server分散读压力,还有一种原因就是MySQL配置文件里max_connections值过小. 首先,我们来查看mysql的最大连接数: mysql> show variables like '%max_connections%'; +-----------------+-------+ | Var

MYSQL 查看最大连接数和修改最大连接数

MySQL查看最大连接数和修改最大连接数 1.查看最大连接数show variables like '%max_connections%';2.修改最大连接数set GLOBAL max_connections = 200; 以下的文章主要是向大家介绍的是MySQL最大连接数的修改,我们大家都知道MySQL最大连接数的默认值是100, 这个数值对于并发连接很多的数据库的应用是远不够用的,当连接请求大于默认连接数后,就会出现无法连接数据库的错误,因此我们需要把它适当调大一些.在使 用MySQL数据

Mac平台重新设置MySQL的root密码

Mac OS X - 重置 MySQL Root 密码 您是否忘记了Mac OS 的MySQL的root密码? 通过以下4步就可重新设置新密码: 1.  停止 mysql server.  通常是在 '系统偏好设置' > MySQL > 'Stop MySQL Server' 2.  打开终端,输入: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 3.  打开另一个新终端,输入: sudo /usr/local/mysql/