自己动手写MiniBBS系列(MVC篇)之远程链接mysql
那天心血来潮想要把数据库部署在身边的另外一台linux计算机的mysql中,但是发现一切配置都没有问题就是链接不上mysql,返回错误说权限不足,连接被禁止。
没办法,去google大神上找答案吧。才发现mysql的数据库在linux主机中默认是不支持远程链接的。
发现就是一句话的事情,我们需要一个授权:
grant ALL PRIVILEGES ON *.* to root@"%" identified by "密码";
虽然没刚开始接触数据库,但是英文已经学了很久了,这句话的意思是把所有操作权限赋予root这个用户@‘%’的意思就是在任意一个ip上都适用。
原来这个对应的是修改系统mysql.user表中的数据,可以对比的看一下执行前后的表内容的改变。
对于linux用户 还可能需要修改/etc/mysql/my.cnf
将以下行注释掉或该为本机的真实ip地址,对于经常更改ip的机器建议还是直接注释比较方便,但是对于这两种方法的区别,本人还是不甚了了,希望知道的朋友告之。
#bind-address = 127.0.0.1
好不容易折腾半天用navicat链接到了mysql 打开一看中文全是乱码,意识到肯定是编码方式问题,在navicat的链接属性中设置成utf8就好了。
后来查了,在linux中mysql的默认编码是utf8,这与linux是一致的。在win系统中如果不做更改,mysql将使用latin1,一般安装时会改成GBK
光用navicat链接成功不是重点,还需要在java中实现远程链接。
我使用jdbc方法链接mysql数据库
在驱动中指定使用编码为真并使用字符编码utf8
代码如下
ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs?user=root&password=asdasd&useUnicode=true&characterEncoding=utf8");
文中的方法不能算是原创,均是已经使用的非常广泛的用法,写作的目的仅是为了对开发中的重点部分加以记录。还希望大家多多指摘
本文出自 “摺扇一路走来” 博客
补充:Web开发 , Jsp ,