首页 > 编程知识 正文

数据库配置参数,mysql系统配置需求

时间:2023-05-04 16:30:23 阅读:45406 作者:219

MySQLJDBC驱动器

经常使用的有两个。 一个是gjt(giantjavatree )组织提供的mysql驱动程序,其JDBC驱动程序名称(JAVA类名)是org.gjt.mm.mysql.Driver

详情请访问网站: http://www.gjt.org/

另一个是mysql官方提供的JDBC驱动程序,JAVA类名为com.mysql.jdbc.Driver

下载地址: http://dev.mysql.com/downloads/,访问MySQL Connector/J区域下载。

mysql JDBC URL的格式如下:

JDBC : MySQL ://[ host :端口],[ host :端口] ./[数据库] [? 参数名称1][=参数值1][参数名称2][=参数值2] .

这里列举了几个重要参数,如下表所示。

参数名称

参数说明

默认值

最低版本要求

用户

数据库用户名(用于连接到数据库)。

所有版本

密码

用户密码(用于连接到数据库)

所有版本

useUnicode

是否使用Unicode字符集。 如果参数sxdxhd设置为gb2312或gbk,则此参数值必须设置为true

假的

1.1g

sxdxhd

如果useUnicode设置为true,则指定字符编码。 例如可以设定为gb2312或gbk

假的

1.1g

自动连接

如果数据库连接异常断开,是否自动重新连接?

假的

1.1

autoReconnectForPools

是否使用数据库连接池重新连接策略

假的

3.1.3

故障恢复只读

自动重新连接成功后,连接是否设置为只读?

真的

3.0.12

最大连接

自动连接设置为true时重试连接的次数

3

1.1

初始时间输出

自动连接设置为true时两次重新连接之间的间隔。 秒单位

2

1.1

连接时间输出

与数据库服务器建立套接字连接时的超时。 毫秒单位。 0表示不超时,适用于JDK 1.4或更高版本

0

3.0.1

套接字时间输出

套接字操作(读/写)超时,单位:毫秒。 0表示不超时

0

3.0.1

其中,重联始于客户端

支持中文环境,通常可以按如下方式设置mysql连接URL :

JDBC : MySQL ://localhost :3306/test? user=rootpassword=use unicode=truesxdxhd=gbkautoreconnect=truefailoverreadonly=false

使用数据库连接池时,建议设置以下两个参数:

自动恢复=truefailoverreadonly=false

请注意,在xml配置文件中,必须将url中的符号转义为。 例如,在tomcat的server.xml中配置数据库连接池时,mysql jdbc url示例如下所示:

JDBC : MySQL ://localhost :3306/test? user=rootpassword=use unicode=truesxdxhd=gbk

自动恢复=truefailoverreadonly=false

如果在创建Mysql时在url中添加了autoReconnect=true参数,但在一个连接中访问数据库两次的时间超过了服务器端wait_timeout的时间限制,则communication sexcepttion

2 .服务器端的参数可用

showglobalvariableslike ' wait _ time out ';

set全局wait _ time out=10;

设置,但wait_timeout的值不要太高。

建议通过将sql发送到处于空闲状态的连接时间表来更新服务器上的时间戳。 您可以使用c3p0r连接池. http://b Zhang.iteye.com/blog/321832

对于在tomcat的server.xml中使用的连接池,http://Tomcat.Apache.org/Tomcat-6.0-doc/JNDI-data source-examples-how to.htmmi

type=' javax.SQL.data source ' driver class name=' com.MySQL.JDBC.driver '

URL=' JDBC : MySQL ://localhost :3306/test? sxdxhd=utf-8 '

用户名称=' root ' password=' test ' max active=' 500 ' maxidle=' 10 '

max wait='-1 ' timebetweenevictionrunsmillis=' 10000 ' minevictableidletimemillis=' 10000 ' /

将验证查询配置为在每次4.1borrow (默认值为on )时使用此sql验证连接的有效性,但需要很长时间。

4.2关闭依赖于配置timebetweenevictionrunsmillis=' 10000 ' minevictableidletimemillis=' 10000 ' evictorthread线程超时的连接。

4.3设置testwhileidle=' true ' timebetweenevictionrunsmillis=' 10000 ' validation query=' select1',以便定时在query中检测空闲状态连接

5 .每次提交的最大包大小

showglobalvariableslike ' max _ allowed _ packet ';

set全局max _ allowed _ packet=1024 * 1024;

6 .在6. SQLyog中设置连接参数

6.1sqlyog中的设置自动提交=0。 这将导致当前连接的自动提交为false,从而允许您控制事务。

6.2占便宜; 事务开始

6.3选择*从测试where1=1and id=1for update; 这样,锁定选定的记录行,打开另一个SQLyog,执行与上述相同的操作,wait就一直在那里。

6.4提交; 提交

6.5回滚; 回滚

6.6设置自动提交=0; 应该之后再加

settransactionisolationlevelreadcommitted;

其他客户端可以看到commit的数据。

疑问:

如果不设置settransactionisolationlevelreadcommitted; 如果两个客户端选择相同的数据,一个客户端修改并提交相同的数据,而另一个客户端不提交当前事务,则执行select不会检索到另一个客户端提交的数据。 我不知道SQLyog的默认事务级别是什么。

7 .在7. SQLyog中查看mysql的状态,显示全局变量like ' % lock % '; 是个好方法。 要为事务锁定(如for update )报告Lock wait timeout exceeded,请在my.ini文件innodb_lock_wait_timeout=100; 将生效。

8 .在8. linux上更改用户密码MySQL admin-uroot password ' new _ pass '

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。