发表于: 2017-11-17 22:17:59

4 593


今天学习的内容

今天使用navicat连接服务器数据库,昨天的时候已经把之前做的spring和mybatis集成的maven项目文件用rz上传到maven项目了,所以连上数据库以后,直接从maven跑测试单元,跑单元之前在远程数据库里面创建了相应的表

这是测试单元的代码

这是测试前表的内容

成功跑完单元测试

这是跑完单元测试的表内容

简单看了下连接池,知道连接池是创建和管理一个连接的缓冲池的技术,具体的实现还没写.

遇到的问题

日期:2017.11.17

问题:远程连接mysql数据库出现错误:2003-can't connect to MYSQL server on ''(10060)

原因:阿里云控制台在实例安全组中没有开放3306端口

怎么发现的:使用navicat连接远程数据库时发现的

修复:打开阿里云控制台,在实例安全组中添加3306端口

在哪些文件修改了:修改了阿里云控制台

我导致的:否

解决Bug的时间:2小时

教训:因为自己是刚刚开始学习java,出现这个问题的时候完全没有想到是阿里云服务器控制台这边的问题,在网上查了很多资料,都是大同小异的三种解决方法:1.远程服务器上没有打开3306 端口  2.没有授权您的这个ip登陆远程数据库(或者您的数据库帐户拒绝远程登陆) 3.网络不通. 

第一种问题的解决办法是:

在iptables中开放3306端口

 #/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

 #/etc/rc.d/init.d/iptables save  保存:

 # service iptables restart  重启生效

第二种解决方法是:

设置远程用户访问权限:

 // 任何远程主机都可以访问数据库  

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;     

//需要输入次命令使修改生效

mysql> FLUSH PRIVILEGES;      

//退出

mysql> EXIT     

第三种不解释了.

很明显最后还是没有解决,在网上的资料很多都是重复的,最后实在没办法,找了师兄帮忙才发现是阿里云控制台这边的问题,说明自己思考的方向还是不对.具体的解决方法是:

打开云服务器ECS

打开左边菜单的实例

打开实例最右边的管理

打开左边菜单的本实例安全组

打开右边的配置规则

右上角添加安全组规则

协议类型默认自定义,端口范围:3306/3306,授权对象:0.0.0.0/0,其他默认就行

确定后重启服务器

连接OK!


今天的收获

远程连接了mysql,成功使用maven命令在服务器上跑了单元测试,把今天遇到的问题写了个博客:http://blog.csdn.net/f056917/article/details/78559625


明天的计划

完成任务一步骤25到27


任务进度:任务1步骤24

任务开始时间:10月28日

任务结束时间:11月19日

禅道:http://task.ptteng.com/zentao/project-task-399.html



返回列表 返回列表
评论

    分享到