MySQL数据库相关

来源:互联网 发布:室内设计书籍 知乎 编辑:程序博客网 时间:2024/06/16 01:11

MySQL 相关

Mysql远程登录权限

有些时候,我们安装了Mysql,在本机上访问都很正常,但是一旦远程连接就会出现连不上的问题。这种情况大多是因为mysql的远程权限没有开启。

查看远程登录权限是否开启

在Mysql数据库中,所有登录用户相关的信息都保存在mysql数据库的user表中。可以通过如下sql脚本来查看mysql所有用户的信息:

   use mysql; select * from user;

 

如果想要查看远程登录权限是否开启,那么执行如下脚本:

 use mysql; select * from user where host='%' and user='root';

 

如果查询结果不为空,那么就说明Mysql数据库的远程登录权限已经开启,否则就是没有开启。

修改Mysql远程登录权限

默认安装的mysql数据库只能由localhost登陆,执行mysql -u root或者直接打开Mysql Command Line Client 后,得到操作界面 ,执行如下sql脚本

  USE mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '新密码' WITH GRANT OPTION; FLUSH PRIVILEGES;

 

Mysql连接超时时间

配置参数解读

  • wait_timeout

参数说明::wait_timeout参数用来配置服务器在关闭一个非交互式连接之前等待的时间(以“秒”为单位),也就是非交互式数据库连接的超时时间。此超时时间值应用于TCP/IP和Unix套接字文件连接,对使用命名管道或者共享内存的连接不起作用。

参数默认值:默认情况下该参数的参数值被设置为28800(秒),也就是默认超时时间为8小时。

参数值有效范围:参数的有效值范围为 1~31536000

  •  interactive_timeout

参数说明:interactive_timeout参数用来配置服务器在关闭一个交互式连接之前等待的时间(以“秒”为单位),也就是交互式数据库连接的超时时间。

参数默认值:默认情况下该参数的参数值被设置为28800(秒),也就是默认超时时间为8小时。

参数最小值:此参数的设置还有最小值,最小值为1(秒)。

查看Mysql连接超时时间

查看Mysql连接超时时间很简单,一句sql语句就可以了:

   show variables like '%timeout'; 

修改Mysql连接超时时间

第一步 修改Mysql配置文件在Mysql安装根目录下的bin文件夹中,打开Mysql的配置文件my.ini,在内容“ [mysqld] ”下面添加以下语句:

  wait_timeout=28800  interactive_timeout=28800

其中,超时时间以“秒”为单位,按需要自行设定。

第二步 重启Mysql服务在windows命令行中输入【services.msc】命令,打开服务窗体,重启其中的Mysql服务。

相关异常及解决方案

 一旦数据库连接在超时后被访问,java程序就会抛出如下异常:

   com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was44742 seconds ago.The last packet sent successfully to the server was 44742 seconds ago, which  is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.lang.reflect.Constructor.newInstance(Unknown Source)at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3246)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1917)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885)at com.sbr.lansecs.authmgrmod.dao.UserServiceImpl.getUserByUserId(Unknown Source)at com.sbr.lansecs.authmgrmod.service.AuthServiceImpl.authSession(Unknown Source)at com.sbr.lansecs.authmgrmod.udp.UDPServer.commonDo(Unknown Source)at com.sbr.lansecs.authmgrmod.udp.UDPServer.run(Unknown Source)Caused by: java.net.SocketException: Software caused connection abort: socket write errorat java.net.SocketOutputStream.socketWrite0(Native Method)at java.net.SocketOutputStream.socketWrite(Unknown Source)at java.net.SocketOutputStream.write(Unknown Source)at java.io.BufferedOutputStream.flushBuffer(Unknown Source)at java.io.BufferedOutputStream.flush(Unknown Source)at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3227)... 9 more

 

 异常解决方案如异常信息所表示的那样,具体有两种方法:

  1,修改Mysql连接的超时时间,将其延长  2,在数据库连接URL后加上'autoReconnect'属性,将属性值设置为'true',例如 local.connection.url=jdbc:mysql://127.0.0.1:3306/nh_oa?autoReconnect=true

 Mysql超时时间相关参数的参数值合理设置

MySQL服务器所支持的最大连接数是有上限的,因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQL服务器处理完相应的操作后,应该断开连接并释放占用的内存。如果你的MySQL Server有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到MySQL Server的连接上限数,这会报'too many connections'的错误。对于wait_timeout的值设定,应该根据系统的运行情况来判断。在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,可以进行适当的调整小些。

Mysql最大数据库连接数

配置参数解读

  •  max_connections

参数说明:max_connections参数用来表示允许同时连接到MySQL服务器的客户数量。如果同一时刻数据库连接数目超出这个值,MySQL会返回Too many connections异常,但是在通常情况下,MySQL服务器能够自行解决。

参数默认值:max_connections参数有默认值。在5.1.14版本之前(包括14版本),该参数默认被设置为100;在5.1.14版本之后,该参数默认被设置为151。

参数值有效范围:

  5.1.14版本之前的版本(包括5.1.14版本)在5.1.14版本之前,max_connections参数的有效值没有范围(任意值均可)。

  5.1.15版本之后,5.1.17版本之前的版本(包括5.1.15版本,但是不包括5.1.17版本)此阶段该参数的有效值范围为 1~16384 。如果用户将此参数的值设置为超过16384的值,也按照16384为准。

  5.1.17版本之后的版本(包括5.1.17版本) 此阶段该参数的有效值范围为 1~100000 。如果用户将此参数的值设置为超过100000的值,也按照100000为准。

  • max_user_connections

参数说明:max_user_connections参数用来设置来自同一用户的最多连接数。设置为0的话则表示不限制。

参数值有效范围:该参数的有效值范围为 1~4294967295 。如果该参数被设置为0,那即意味着“没有限制”。

Mysql最大数据库连接数查看

方法一 使用命令查看查看Mysql最大数据库连接数,请使用如下命令:

   show variables like '%connections';

方法二  从配置文件中查看在mysql配置文件my.ini(或者my.cnf)中,搜索“max_connections"字符串,即可查看到最大连接数。

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

进入Mysql安装目录,打开mysql配置文件my.ini或my.cnf,查找max_connections,将其参数值修改为合适大小,然后包存配置文件,重启mysql服务。

MySQL服务器最大连接数的合理设置

* 增加max_connections参数的值,不会占用太多系统资源。

* 系统资源(CPU、内存)的占用主要取决于查询的密度、效率等。

* 总体来说,该参数在服务器资源够用的情况下应该尽量设置大,以满足多个客户端同时连接的需求。

修改mysql用户密码

方法一:(适用于管理员或者有全局权限的用户重设其它用户的密码)

  进入命令行模式 mysql -u root mysql mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='name';   mysql> FLUSH PRIVILEGES;   mysql> QUIT 
# 方法二: (应用同上,只是方法不同)
  进入命令行模式mysql -u root mysql   mysql> SET PASSWORD FOR name=PASSWORD('new password');   mysql> QUIT 

最后必杀技:mysqladmin -u root "old password" "new password"

Windows操作系统中Mysql密码被忘记的处理方法

1、关闭正在运行的MySQL。

2、 打开DOS窗口,转到mysql\bin目录。

3、输入mysqld --skip-grant-tables回车。如果没有出现提示信息,那就对了。

4、再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。

5、输入mysql回车,如果成功,将出现MySQL提示符 >

6、连接权限数据库>use mysql; (>是本来就有的提示符,别忘了最后的分号)

7、改密码:> update user set password=password("520") where user="root"; (别忘了最后的分号)

8、刷新权限(必须的步骤)>flush privileges;

9、退出 > \q

10、注销系统,再进入,开MySQL,使用用户名root和刚才设置的新密码520登陆。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 初二作业没写完怎么办 初中孩子上课困怎么办 老师不搭理孩子怎么办 心里纠结一件事怎么办 孩子不喜欢吃蔬菜怎么办 孩子不愿练钢琴怎么办 孩子不愿练琴怎么办 孩子和老师吵架怎么办 学生老顶撞老师怎么办? 小孩不喜欢吃蔬菜水果怎么办 孩子不愿意学琴怎么办 不喜欢吃水果蔬菜怎么办 小孩不喜欢吃水果怎么办 校长想整老师怎么办 和老师吵架了怎么办 孩子初中转学学籍怎么办 孩子上初中学籍怎么办 18孩子不想上学怎么办 宝宝不爱吃蔬菜怎么办 孩子总丢东西怎么办 孩子经常丢东西怎么办 孩子总是丢东西怎么办 孩子负能量太多怎么办 不要孩子老了怎么办 父母都内向孩子怎么办 孩子不喜欢读课外书怎么办 学习学不进去怎么办 小孩停不下来怎么办 小孩老爱玩不爱学习怎么办 小孩子不喜欢吃菜怎么办 孩子初中不爱学习怎么办 大学不爱学家长怎么办 小孩子不爱读书不听话怎么办 小孩不爱读书写字怎么办 一年级学生不爱学习怎么办 孩子练字怕累怎么办 孩子不愿意学英语怎么办 生了儿子 不喜欢 怎么办 养两个儿子的怎么办 看诗词记不住怎么办 经常读书记不住怎么办