程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 自己動手寫MiniBBS系列(MVC篇)之遠程鏈接mysql

自己動手寫MiniBBS系列(MVC篇)之遠程鏈接mysql

編輯:關於JSP

 

那天心血來潮想要把數據庫部署在身邊的另外一台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");

 

 

文中的方法不能算是原創,均是已經使用的非常廣泛的用法,寫作的目的僅是為了對開發中的重點部分加以記錄。還希望大家多多指摘

 

 

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved