参照了网上一些大神的的步骤(很感谢这些无私奉献的大神)
1.首先查看一下,驱动包有没有导入。在项目工程下,新建一个libs文件夹,加入MySQL的jdbc包。
2.关闭防火墙。
第一个是操作系统自带的防火墙,右击计算机-->管理-->服务和应用程序-->服务-->Windows Firewall停止此服务(或者网上有其他方法)
第二个是一些杀毒软件的防火墙,直接退出。
3.我的ADT为ADT-23.0.6,SDK为android-sdk_r24.4.1-windows,也就是说ADT和SDK为16以上的也能远程访问数据库。我设置的最小版本和目标版本如下<uses-sdk android:minSdkVersion="15"
android:targetSdkVersion="23" />(个人觉得版本问题可能不是连不上的原因)
4.手机和mysq服务器要互相ping通。
实现这个步骤我的做法是:用一个无线路由器,电脑(安装了Mysql数据库)和手机都要连接在这个无线路由器上。(在同一个网关下面)
5.添加网络权限 :在项目下的AndroidManifest.xml中,在</manifest>的前面添加一句话:<uses-permission Android:name="android.permission.INTERNET" />
6.(最重要的)访问Mysql数据库的方法不能放在主线程里,要另开一个线程操作该方法,安卓4.0以后版本中在主线程中不允许有耗时的操作,调用数据库是耗时的操作,所以千万不能在主线程里调用操作数据库的方法。
7.设置mysql数据库允许远程连接。运行cmd,进入Mysql Command Line Client客户端,赋予某一个用户访问数据库的权限,以后通过这一个用户访问数据库.代码如下
grant all privileges on DBname.* to 'username'@localhost IDENTIFIED by 'password';
grant all privileges on DBname.* to 'username'@'%' IDENTIFIED by 'password';
flush privileges;
把DBname,username,password换成自己的,别忘分号。
8.其实这种方式个人感觉不可靠,我测试的时候有时连得上,有时就突然连不上了,有时候读取数据会很慢(最好路由器不要连接太多设备)。请教了很多大神他们都建议中间写个服务器,个人觉得不能偷懒还是要写个中间服务器端的。
以上都是我这个菜鸟的一些实践的总结,希望大神们给出指正,还有我还不会写服务器端,正在摸索前进,希望大神指点