欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

自己动手写MiniBBS系列(MVC篇)之远程链接mysql

程序员文章站 2022-06-20 08:20:23
  那天心血来潮想要把数据库部署在身边的另外一台linux计算机的mysql中,但是发现一切配置都没有问题就是链接不上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");

 

 

文中的方法不能算是原创,均是已经使用的非常广泛的用法,写作的目的仅是为了对开发中的重点部分加以记录。还希望大家多多指摘

 

 

本文出自 “摺扇一路走来” 博客