链接mysqlmysql创建数据库失败败怎么办

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&&&& 其中wait_timeout就是负责超时控制的变量,其时间为长度为28800s,就是8个小时,那么就是说MySQL的服务会在操作间隔8小时后断开,需要再次重连。也有用户在URL中使用jdbc.url=jdbc:mysql://localhost:3306/nd?autoReconnect=true来使得连接自动恢复,当然了,这是可以的,不过是MySQL4及其以下版本适用。MySQL5中已经无效了,必须调整系统变量来控制了。MySQL5手册中对两个变量有如下的说明: &&& &interactive_timeout:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。又见wait_timeout &&&& wait_timeout:服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义),又见interactive_timeout &&&&& 如此看来,两个变量是共同控制的,那么都必须对他们进行修改了。继续深入这两个变量wait_timeout的取值范围是1-2147483(Windows),1-(linux),interactive_time取值随wait_timeout变动,它们的默认值都是28800。 &&& MySQL的系统变量由配置文件控制,当配置文件中不配置时,系统使用默认值,这个28800就是默认值。要修改就只能在配置文件里修改。Windows下在%MySQL HOME%/bin下有mysql.ini配置文件,打开后在如下位置添加两个变量,赋值。(这里修改为388000) &&&&&& 保存退出,重启mysql服务,一定是重启系统服务。便可看到修改结果:
Linux系统下的配置文件为/f。需要多说一点的是:windows下的配置文件具体是哪个需要从windows系统服务中找到mysql,打开属性,看“可执行文件路径”里面的参数值,因为它可能是my.cnf而不是my.ini,这是由于安装时的设置,我们可能会忽略它。
&&&&& 至此,修改完成,那么连接超时的问题从数据库上就解决了。当然在编程时也可以使用连接池设置超时时间,配置相对简单。但修改数据库更为本质一些。
&&&&&&& 但是这并不是最根本的解决方法。
下面是推荐方法:
方法一:修改配置
&&&&&&对于MySQL5之前的版本,如Mysql4.x,只需要修改连接池配置中的URL,添加一个参数:
autoReconnect=true,
&&&&& 如果是MySQL5及以后的版本,则需要修改my.cnf(或者my.ini)文件,在[mysqld]后面添加上: wait_timeout = n interactive-timeout = n n为服务器关闭交互式连接前等待活动的秒数。 &&&&&& 可是就部署而言每次修改my.ini比较麻烦,而且n等于多少才是合适的呢?所以这个解决办法不好。&&&&&&&&方法二& Hibernate
&&&&&&& MySQL官方不推荐使用autoReconnect=true,参见 需要另外找别的办法来解决超过8小时,链接断开的问题。
&&&&&&& 怎么才能比较好的解决这个问题呢?通过仔细分析,原因大致为:当修改系统日期后Mysql自动关闭已打开的连接,可以数据库连接池(DBCP)还认为这些连接是活动的,如果这时有请求(需要执行读写数据库的操作),连接池就用一个连接去操作数据库,而这个连接在Mysql的连接池中并不存在,所以会出现以上的异常。如果一个连接在和Mysql建立连接时能检查就不会有这样的问题了。 &&&&&& 这时我们同事想起了他以前用过的一个数据库连接池 proxool,它有两个属性:一个是test-before-use,还有一个是test-after-use,这两个属性就是在使用前和使用后都要进行对连接的检查,如果连接无效就扔掉再创建一个新的连接,它们的解释如下: test-before-use: If you set this to true then each connection is tested (with whatever is defined in house-keeping-test-sql) before being served. If a connection fails then it is discarded and another one is picked. If all connections fail a new one is built. If that one fails then you get an SQLException saying so. test-after-use: If you set this to true then each connection is tested (with whatever is defined in house-keeping-test-sql) after it is closed (that is, returned to the connection pool). If a connection fails then it is discarded.&&&&&&&& 由于问题产生的根本原因在于服务到数据库的连接长时间没活动,既然重新连接的办法无效,就可以尝试另外一种办法,就是反空闲。 自己写一个线程来反空闲的话,比较麻烦。&&&&&&&& hibernate配置连接池,推荐用c3p0,然后配置c3p0的反空闲设置idle_test_period,只要小于MySQL的wait&timeout即可。 在hibernate.cfg.xml中增加下面几项:
&!--&configuration&pool&via&c3p0--& &property&name="hibernate.connection.provider_class"&org.hibernate.connection.C3P0ConnectionProvider&/property& &property&name="c3p0.min_size"&5&/property& &property&name="c3p0.max_size"&30&/property& &property&name="c3p0.time_out"&1800&/property&&&!--&seconds&--&&!--&default:&0&--& &property&name="c3p0.max_statement"&50&/property&&&!--&default:&0&--& &property&name="c3p0.acquire_increment"&1&/property&&&!--&default:&1&--& &property&name="c3p0.idle_test_period"&120&/property&&&&!--&seconds&--&&!--&default:&0&--& &property&name="c3p0.validate"&true&/property&
方法三 链接池程序控制
&&&&&& 在取链接时先判断链接是否可用,如果可用就使用链接,如果不可用就销毁。
阅读(3871)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'MySQL数据库连接超时(wait_timeout)问题的处理',
blogAbstract:'
&&&&&&&想必大家在用MySQL时都会遇到连接超时的问题,如下图所示:&
&&&&&& 就是这个异常(com.mysql.jdbc.municationsException:Communications link failure Last packet sent to the server was X ms ago),是由于MySQL服务在长时间不连接之后断开了,断开之后的首次请求会抛出这个异常。那么既然是连接超时的问题,就要去MySQL中探究一下连接时间是怎么控制的。打开MySQL的控制台,运行:show variables like ‘%timeout%’,查看和连接时间有关的MySQL系统变量,得到如下结果:
blogTag:'mysq链接,数据库使用',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}热门版块:&
Anton_basta
级别: 齐云站长
发帖: 1167
贡献: 12 点
推荐: 0 人
积分: 4369 个
魅力值: 12 分
好评度: 0 点
经验值: 1839 点
在线时间: 472(小时)
注册时间: 最后登录:
&MYSQL 连接数据库失败,数据库用户名与密码不正确,
MYSQL 连接数据库失败,数据库用户名与密码不正确,请修改配置文件/php168/mysql_config.php Can't connect to MySQL server on 'localhost' (10061) 2003 重启myslq在控制版面→管理工具→服务 那里重启 有一个东东要删除,补厅文件 进删除程序里面,把KB967723这个补厅删除,重启一下服务器就OK& 这东西装机忘了删,会引起数据库频频连接出错!登录服务器,进入控制面板 --- 添加和删除程序 -- (勾选上方的“显示更新”) 在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。 卸载完成后程序服务器,一切正常!
Anton_basta
级别: 齐云站长
发帖: 1167
贡献: 12 点
推荐: 0 人
积分: 4369 个
魅力值: 12 分
好评度: 0 点
经验值: 1839 点
在线时间: 472(小时)
注册时间: 最后登录:
:在使用过程中出现了这样的错误提示“DedeCMS Error Track:DedeCMS错误警告:连接数据库失败,可能数据库密码不对或数据库服务器出错!”,请问这是什么问题?A:这是因为没有正确的和数据库服务器连接,出现问题的可能性有3种:第一,您的数据库服务器出现了问题,如果您买的是虚拟主机或者合租服务器,请及时联系空间商询问情况,如果您是本地调试,确保MySQL服务是否正常启动,如果不知道如何确保MySQL服务如何启动,请搜索百度、Google。第二,您看看您的data/common.inc.php中的数据库信息是否正确。第三,大站请参考此条,MySQL默认连接数只有100,在站点流量大时,会因连接数满载而出错,请检查MySQL配置文件中max_connections项,改为 max_connections = 1000。 我的是在火车头采集的时候出现这问题了,我检查了common.inc.php 没有问题同时我希望所有的回答者不要老回答类似问题&& 我的是连接数错误吧
Anton_basta
级别: 齐云站长
发帖: 1167
贡献: 12 点
推荐: 0 人
积分: 4369 个
魅力值: 12 分
好评度: 0 点
经验值: 1839 点
在线时间: 472(小时)
注册时间: 最后登录:
&修改mysql的最大连接数
下的文章主要介绍的是正确修改MySQL最大连接数的三种好用方案,我们大家都知道MySQL数据库在安装完之后,默认的MySQL数据库,其最大连接数为100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MySQL连接数的方法有两个。方法一:进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MySQL即可方法二:MySQL最大连接数默认是100客户端登录:MySQL -uusername -ppassword 复制代码设置新的MySQL最大连接数为200:MySQL& set GLOBAL max_connections=200 MySQL&SHOW VARIABLES;MySQL&SHOW VARIABLES like 'max_%';&显示当前运行的Query:MySQL& show processlist &如何查询mysql的已连接数MySQL&s&显示当前状态:MySQL& show status 复制代码退出客户端:MySQL& exit查看当前MySQL最大连接数:MySQLadmin -uusername -ppassword variables方法三:以centos 4.4 下面的MySQL 5.0.33 手工编译版本为例说明:vi /usr/local/MySQL/bin/MySQLd_safe 复制代码找到safe_MySQLd编辑它,找到MySQLd启动的那两行,在后面加上参数 :-O max_connections=1500 复制代码具体一点就是下面的位置:用红字特别说明:then $NOHUP_NICENESS $ledir/$MySQLD& $defaults --basedir=$MY_BASEDIR_VERSION& --datadir=$DATADIR $USER_OPTION& --pid-file=$pid_file& --skip-external-locking& -O max_connections=1500 && $err_log 2&&1 else& eval &$NOHUP_NICENESS $ledir/$MySQLD& $defaults --basedir=$MY_BASEDIR_VERSION& --datadir=$DATADIR $USER_OPTION& --pid-file=$pid_file& --skip-external-locking $args& -O max_connections=1500 && $err_log 2&&1&& 复制代码保存。# service MySQLd restart& # /usr/local/MySQL/bin/MySQLadmin -uroot -p variables& 复制代码输入root数据库账号的密码后可看到max_connections 1500 即新改动已经生效。还有一种方法,修改原代码:解开MySQL的原代码,进入里面的sql目录修改MySQLd.cc找到下面一行:{&max_connections&, OPT_MAX_CONNECTIONS,& &The number of simultaneous clients allowed.&, (gptr*) &max_connections,& (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 1,& 0},& 复制代码把它改为:{&max_connections&, OPT_MAX_CONNECTIONS,& &The number of simultaneous clients allowed.&, (gptr*) &max_connections,& (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 384, 0, 1,& 0},& 复制代码存盘退出,然后./con**make install可以获得同样的效果。以上的相关内容就是对修改MySQL最大连接数的3种方法的介绍,望你能有所收获。
Anton_basta
级别: 齐云站长
发帖: 1167
贡献: 12 点
推荐: 0 人
积分: 4369 个
魅力值: 12 分
好评度: 0 点
经验值: 1839 点
在线时间: 472(小时)
注册时间: 最后登录:
如何查询mysql的已连接数??请问如何查询mysqlserver当前已经连了多少用户??我用的是windows操作系统,server安装在别的机器上,我是客户端想获取server的已连接用户数。请告知。。&sD:MySQLbin&mysqladmin processlist -uroot -pgene不好意思,我描述的有问题。。我要得到的是已连接server的客户端的个数。。用这个s语句得到了十几条记录,而且记录有重复的,就像你上面的那样,同一个用户登录它显示有两条记录,而我想得到的是1.这个命令看到host对host去冗余就是你要的了查看MySQL连接数方法 13:031、查看当前所有连接的详细资料:MySQLadmin -uroot -proot processlist D:\MySQL\bin&MySQLadmin -uroot -proot processlist +-----+------+----------------+---------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +-----+------+----------------+---------+---------+------+-------+------------------+ | 591 | root | localhost:3544 | bbs | Sleep | 25 | | | | 701 | root | localhost:3761 | | uery | 0 | | show processlist | +-----+------+----------------+---------+---------+------+-------+------------------+ 2、只查看当前MySQL连接数(Threads就是连接数.):MySQLadmin -uroot -proot status D:\MySQL\bin&MySQLadmin -uroot -proot status Uptime: 2102 Threads: 3 Questions: 15531 Slow queries: 0 Opens: 0 Flush tab les: 1 Open tables: 61 Queries per second avg: 7.389 3、修改MySQL最大MySQL连接数:打开my.ini,修改max_connections=100(默认为100)。
Code & 2009-12
Corporation连接mysql数据库报错解决方法
连接报错解决方法
1.mysql 错误 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'
解决办法:关闭防火墙,linux下命令
[root@etl01 bin]# chkconfig --list | grep -i iptables &====check fire wall
iptables & & & &0:off & 1:off & 2:on & &3:on & &4:on & &5:on & &6:off
[root@etl01 bin]# /sbin/service iptables stop & & & & & ====stop fire wall
Flushing firewall rules: [ &OK &]
Setting chains to policy ACCEPT: nat filter [ &OK &]
Unloading iptables modules: [ &OK &]
2.报错:1130-host ... is not allowed to connect to this MySql server
解决办法:
比如账户为root,密码为root
用root账户从任何主机上访问my了&
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
如果你想允许用户zz从ip为192.168.1.3的主机连接到mysql服务器,并使用123456作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY '; WITH GRANT OPTION;
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
连接MySQL数据库失败频繁的原因
  连接失败频繁,主要是什么原因造成的? 一年前,我开发了一个网站,租用的是下PHP+mySQL的虚拟空间,之前一直工作正常。
  近半年来,却频繁出现连接数据库失败错误(一周1~2次),需要找空间商重启mysql服务才行:
  Warning: mysql_connect(): Can 't connect to MySQL server on 'xx.xx.xx.xx ' (4) in /www//xxxx.php on line xxxx
  找空间商投诉,空间商说是我自己的问题,说同主机的其他网站没有类似问题。
  在网上搜索,似乎有些网友说,操作数据库不能用mysql_connect()和mysql_close()开关。照文中指示,将mysql_connect()改成了mysql_pconnect(),似乎正常了半个月时间。但是这半个月恰好因为调整,我的网站流量下降了。这2天,流量恢复,问题再度出现,而且不再是1周1~2,是天天出现:
  Warning: mysql_pconnect(): Can 't connect to MySQL server on 'xx.xx.xx.xx ' (4) in /www//xxxx.php on line xxxx
  特别是今天,重启了也没用,又坏了,又联系不到客服,急死了。
  请大家帮忙找找,到底是啥原因?是否和流量大小相关?应该怎么解决,谢谢!
  回答:对于这个疑问,当时有人提出建议:优化一下程序,每页不要有过多的查询. 特别是循环体里面,尽量不要再有查询,否则很容易堵塞。应该考虑使用连接池
  但是提问者又出现了问题:我已经尽可能减少每个页面的数据库连接数了。
  曾经最开始的时候有个页面的连接数是比较多(因为开始为了代码复用,用了iframe嵌套),后来经优化最多的1个页面已经减到4个;其他一般1~2个。
  昨天我已经把所有页面的连接数都降到2个以下,用户访问最多的页面(占访问总量的80%)只有1个连接。
  但是今天中午问题又出现了。
  从现象来看, 'xx.xx.xx.xx '应该你是用了或者IP作为host名,这样一旦DNS或者出问题,就会连不上本机端口,建议你使用localhost作为host名。localhost还会在不支持socket的时候自动使用管道连接本机,不会出现连接问题。
[ 责任编辑:之极 ]
HPE Octane为开发者和…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte

我要回帖

更多关于 mysqli链接数据库 的文章

 

随机推荐