之前在做项目的时候,遇到一个问题,使用EF6.0连接MYSQL的时候,在本地好好的,但是上到服务器上去以后,一段时间都是没问题的,并发量一上来,就报错【The underlying provider failed on Open】,检查了半天,一直没有找到原因所在,问了度娘和谷歌,大多数都是说连接字符串的问题,检查了无数遍连接字符串,完全排除连接字符串的问题。
还有的说是用户权限的问题,在IIS里面去把用户权限加上了,还是一样的报错!
后来想到是并发量上来以后,才出现的这个错误,于是乎想到是不是数据库的连接数太小造成的?翻看数据的最大连接数:
show max_connections
返回的结果是151,明显不够嘛,于是加大一些试试:
set global max_connections=1000;
将连接数设置到1000以后,该错误一直没有再次出现。
这里额外再说下,命令行下连接mysql的方法,Win+R,弹出框中输入cmd,打入命令行页面。在Dos窗口里输入mysql -hlocalhost -uroot -p回车 进入mysql数据库,其中-h表示服务器名,localhost表示本地;-u为数据库用户名,root是mysql默认用户名;-p为密码,如果设置了密码,可直接在-p后链接输入,如:-p123456,用户没有设置密码,显示Enter password时,直接回车即可。这里要注意,如果端口号不是默认是3306,上面的命令还要多行一个参数,-P端口号就行了,比如:-P3419
最后送一个彩蛋,describe这个函数是用来查表结构的,比较方便。示例
describe ba_user;
就能得到下面的数据
相关阅读
文章评论