由于使用错误的函数,而和数据库发生了一段有趣的故事

96
Cc卿
2017.12.21 15:18 字数 888

为了一个小公司的一个录入系统,我在使用angular.js时,发现$http无法使用,但由于急需,暂时没有想到解决办法,就急匆匆使用了 setinverter 这个函数来获取数据库中的数据,遍历出来;

因为是早期版本的angular.js(1.5.7), 使用的http也是angular.js里自带的模块,因为太久没看angular,后来上网查资料才知道,原来,angular.js在1.6 版本后,http的成功和失败的回调方法已经改为了 then();

结果是可行的,但是出现一种情况就是,能查到3张表,但是我需要同时查讯4张表,但是最后一张表的数据没有显示出来,我在远程数据库中debug的时候,看到数据库显示 too mach connect;

too mach connect 的问题就是表现为你在远程数据库上无法进入数据库,你无法通过正常的键入用户名和密码进入数据库来对数据库进行操作。

这里我想到的是高性能的问题,和高并发的问题,因为我是不断向数据库去发出请求,可以看成高并发这一类类似的问题;

故事就这样开始了,为了解决这个 too mach connect 这个问题,我决定一路走到黑,先玩玩数据库:

对于一个对后端摄入不深的前端同学,看网上看到,有人推荐到说修改数据库的配置,也就是修改数据库的最大连接数:

修改数据库的最大连接数:

在这里,可以分两种情况来决定你是用修改数据库配置方式直接还是在 mysql里面使用命令来直接修改配置;

如果你的数据库在一直都是数据输进,不断地接受请求,不断响应用户交互的,这种情况下,无法直接停掉数据库来只修改配置,可以通过数据命令行来不安全修改;

如果你的产品还是上线,或者还没被用户使用,这种情况就是这直接修改数据库的配置文件来修改最大连接数;

首先,可以查看一下自己数据库的默认配置;

进如mysql 里使用命令:

mysql> show variables like ‘%max_connections%’;


图片发自简书App


这是我修改后的最大连接数,原先我的默认连接数是151的;

然后可以在etc/init.d/my.cnf  或者etc/mysql/my.cnf;

找到

max_connections = xxxx;


图片发自简书App


直接修改就行;

另一种方式则是:

mysql命令行修改。

mysql -uuser -ppassword(命令行登录MySQL)

mysql>show variables like ‘max_connections’;(查可以看当前的最大连接数)

msyql>set global max_connections=1000;(设置最大连接数为1000,可以再次查看是否设置成功)

mysql>exit(推出)

拓展:

查看当前连接数(最高并发数);

                        mysql> show status like ‘Threads%’;


图片发自简书App



    Threads_connected 表示当前连接时;

    Threads_running 表示并发数;

原文:http://wusiqing.com/?p=165

参照资料:

改变最大连接数  http://blog.csdn.net/sd4015700/article/details/50351045

重启和关闭mysql http://blog.csdn.net/yonghutwo/article/details/52248864

查找文件:https://www.cnblogs.com/sunleecn/archive/2011/11/01/2232210.html

技术
Gupao