Mar*_*ina 3 java mysql database database-connection jdbc
我有一个大问题!当我这样做:
String query = "SELECT * FROM utente WHERE confermato=1 and Username='" + username
+ "' AND Password='" + password + "'";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("ind_server/nome_db","user","password");
Run Code Online (Sandbox Code Playgroud)
Eclipse给了我这个错误:
Packet for query is too large (4739923 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
Run Code Online (Sandbox Code Playgroud)
那么,首先:这个查询真的那么大?-.-之后:我必须在ssh中使用哪些命令?这是我第一次有这个东西!提前致谢!
我在服务器上没有root权限!
我试过用这个:
mysql>set global max_allowed_packet=32*1024*1024;
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误:ERROR 1227(42000):访问被拒绝; 您需要此操作的SUPER权限
编辑
现在我已将max_allowed_packet变量修改为32MB.停止并重新启动服务器但是eclipse给了我同样的错误!
我能做什么?
mat*_*uds 13
我只需处理相同的错误消息,抛出DriverManager.getConnection(URL,username,password).我甚至得到了相同的"神奇数字"(4739923> 1048576); 谷歌搜索那些"魔术数字"将显示人们的结果也会得到一些DriverManager.getConnection语句抛出的错误.就我而言,有关数据包大小的错误消息是完全错误的; 我只是使用了一个错误的URL,并且整个事情都不得不用数据包大小.
也许这有助于解释我使用的URL出了什么问题 - 虽然这有点令人尴尬(这是一个非常愚蠢的错误.)这就是它.
我用一些名为SQLYog的"数据库管理器"软件(类似于phpMyAdmin)成功连接到远程服务器/数据库.为了连接,我不得不给SQLYog 2套东西.首先,URL(或IP地址),用户名,密码和端口,以便我的计算机可以与服务器连接.第二,URL,端口,MySQL用户名,MySQL密码,以便服务器机器可以连接到数据库(位于那台机器上.)所以有2个URL和2个端口(还有2个用户名和2个密码)一个用于客户端 - >服务器和一个用于服务器 - >数据库.
现在,决定在DriverManager.getConnection中选择JAVA代码的那些URL,我选错了,愚蠢的我!显然,必须是第二步(服务器 - >数据库),而不是第一步(客户端 - >服务器); 在服务器上运行所有servlet之后,servlet甚至运行的事实表明步骤1已经完成,第2步仍有待完成.由于数据库与运行servlet的机器在同一台机器上,因此该URL只是"localhost"; 或者更确切地说,"jdbc:mysql:// localhost:3306/myDatabaseName".而不是"jdbc:mysql://domainNameOfServer.com:somePortNumber/myDatabaseName",它引发了上述错误.
愚蠢的错误和非常愚蠢的错误消息.我想这很合适.
Jus*_*ald -1
好吧,我们不知道您的数据库有多大,但您的查询非常具体。
至于 max_allowed_packet,请查看这篇文章:
如何检查和设置 max_allowed_packet mysql 变量
| 归档时间: |
|
| 查看次数: |
26612 次 |
| 最近记录: |