修改MySQL最大连接数

mysql -uroot -pgameol32!    或者

mysql -uroot -p    再输入密码            进入mysql控制台

mysql控制台模式下:

show status;    查看mysql所有状态

show processlist;     普通用户自己的当前连接数,root用户可以查看所有用户的当前连接数

show status like ‘%connections%‘;    关键字查找

shell命令行模式下:

mysqladmin -uroot -p variables    查看mysql当前运行状态

修改mysql最大连接数的方法:

一、即时修改,即时生效

mysql -uroot -p

mysql> set GLOBAL max_connections=1000;     默认最大连接数100

mysql> show processlist;    显示当前运行的query请求

mysql> show status;    显示当前的状态

mysql> exit;    退出mysql控制台

mysqladmin -uroot -p variables

系统重启失效

可以写脚本,在系统启动初始化时执行脚本,修改最大连接数

二、修改配置文件,重启生效

以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
}

四、Windows系统修改

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

时间: 2024-10-11 16:56:13

修改MySQL最大连接数的相关文章

修改MYSQL最大连接数的2种方法

mysql默认最大连接数是100,增加加默认MYSQL连接数的方法有两个 方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini(windows) 或 my.cnf(linux环境)查找 max_connections=100   修改为 max_connections=1000 服务里重起MYSQL即可 方法二: 客户端登录:mysql -u username -p password 设置新的最大连接数为200:mysql> set GLOBAL max_connections=

正确修改MySQL最大连接数的三种好用方案

以下的文章主要介绍的是正确修改MySQL最大连接数的三种好用方案,我们大家都知道MySQL数据库在安装完之后,默认的MySQL数据库,其最大连接数为100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MySQL连接数的方法有两个.方法一:进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MySQL即可方法二:MySQL最大连接数默认是100客户端

修改Oracle,mysql最大连接数

1.修改Oracle最大连接数的方法 a.以sysdba身份登陆PL/SQL 或者 Worksheet b.查询目前连接数 show parameter processes; c.更改系统连接数 alter system set processes=1000 scope=spfile; d.创建pfile create pfile from spfile; e.重启Oracle服务或重启Oracle服务器 2.查询Oracle游标使用情况的方法 select * from v$open_curs

mysql优化-mysql最大连接数

########################### 修改mysql最大连接数 ############################### MYSQL数据库安装完成后,默认最大连接数是100, 一般生产环境的论坛或网站是远远不够的,以下提供两种修改MYSQL最大连接数的方法 ---------------------- 方法1:在线修改mysql最大连接数 --------------------------- 特点:对于mysql在使用中无法停机重启的情况,可以在mysql运行情况下修改

如何实时查看mysql当前连接数?

如何实时查看mysql当前连接数?  1.查看当前所有连接的详细资料: ./mysqladmin -uadmin -p -h10.140.1.1 processlist2.只查看当前连接数(Threads就是连接数.): ./mysqladmin  -uadmin -p -h10.140.1.1 status .查看当前所有连接的详细资料: mysqladmin -uroot -proot processlist D:\MySQL\bin>mysqladmin -uroot -proot pro

怎么实时查看mysql当前连接数

如何实时查看mysql当前连接数? 如何实时查看mysql当前连接数? 1.查看当前所有连接的详细资料: ./mysqladmin -uadmin -p -h10.140.1.1 processlist 2.只查看当前连接数(Threads就是连接数.): ./mysqladmin -uadmin -p -h10.140.1.1 status .查看当前所有连接的详细资料: mysqladmin -uroot -proot processlist D:\MySQL\bin>mysqladmin

MySQL的连接数

我使用的数据库,没有针对其进行其他相关设置,最近经常出现连接异常,现象为太多的连接. MySQL查看最大连接数和修改最大连接数 1.查看最大连接数(可通过show variables查看其他的全局参数).通常,mysql的最大连接数默认是100, 最大可以达到16384. show variables like '%max_connections%'; 显示变量信息,可选择范围,global | session | local ,紧跟show后面 2.修改最大连接数 set GLOBAL max

mysql 最大连接数是什么意思?有什么用?如何修改?

服务器同时最大连接数,也就是说可以有一千个用户,但只能同时一百个用户访问数据库,也就是响应客户端连接的最大进程数 注意 是有一个连接进程算一个 不是指电脑台数.错过最大连接数后,新的数据库连接无法发起 老的保持正常. 数据库连接数突然增大是什么原因? 可能是数据库性能突然变慢,连接的客户要很久才能得到响应,客户以为是自己没确认到,于是客户就不断地连接,这样会话就增加了,数据库就更忙了,最后可能会挂了. 如何修改? MySQL的max_connections参数用来设置最大连接(用户)数.每个连接

修改MySQL数据库最大连接数的两种方法

在一个Web项目用到了Lucene,每次MySQL导入新的数据库测试数据时候需要重置Lucene时会报"too many connections"错误. 原因:MySQL默认最大连接数是100,当超过100连接时就会出错. 解决方案一:在Navicat for MySQL中执行“set Global max_connections = 1000”. 但方案一的修改只是暂时的,每次重启数据库最大连接数仍然会恢复为100,这样每次都要执行一次.      解决方案二:修改MySQL配置文件