第 8 章“MySQL”的學(xué)習(xí)筆記。如今 LAMP 大行其道,還用 C / C++ 接口是否有些非主流呢?
安裝和配置 MySQL
下面是我的安裝配置步驟,完成后可以從主機(jī)(Windows)上的 NetBeans 連接到客機(jī)(VirtualBox 中的 Debian)上的 MySQL 數(shù)據(jù)庫:
-
安裝 MySQL 數(shù)據(jù)庫和開發(fā)工具包:
root@vdeb:~$ apt-get install mysql-server
root@vdeb:~$ apt-get install libmysqlclient-dev
裝完后 MySQL 就自動(dòng)運(yùn)行了。
-
編輯 /etc/mysql/my.cnf,將“bind-address = 127.0.0.1”這一行注釋掉,再加一行“default-storage-engine=INNODB”,然后重啟 MySQL:
root@vdeb:~$ mysqladmin -uroot -p shutdown
root@vdeb:~$ mysqld_safe &
這使得可從遠(yuǎn)程客戶端訪問 MySQL 數(shù)據(jù)庫,并且存儲(chǔ)引擎改用 InnoDB,因?yàn)槟J(rèn)的 MYISAM 不支持事務(wù)。
-
因?yàn)榘踩珕栴},root 用戶默認(rèn)不支持遠(yuǎn)程登錄。所以最好另外創(chuàng)建一個(gè)用戶,并賦予相應(yīng)權(quán)限:
zhyi@vdeb:~$ mysql -uroot -p
mysql> create database zhyidb;
mysql> grant all on zhyidb.* to 'zhyi'@'%' identified by 'pwd';
mysql> \q
以上命令創(chuàng)建了一個(gè)數(shù)據(jù)庫 zhyidb,并且將對它的全部操作權(quán)限賦予用戶 zhyi。用戶 zhyi 將被自動(dòng)創(chuàng)建,初始密碼為“pwd”,'zhyi'@'%'
表示可從任意遠(yuǎn)程主機(jī)使用 zhyi 用戶進(jìn)行登錄。
-
在 VirtualBox 中配置端口轉(zhuǎn)發(fā) 3306→3306,然后就可以直接用 NetBeans 的數(shù)據(jù)庫資源管理器連接剛創(chuàng)建的 zhyidb 數(shù)據(jù)庫了。這里是 JDBC 客戶端,其他類型的客戶端也應(yīng)該沒有問題。
執(zhí)行 SQL 語句
不看不知道,一看嚇一跳!本以為通過 C 接口操作數(shù)據(jù)庫比較高深,結(jié)果越看越眼熟:這不就是 JDBC 的翻版嗎?(也許應(yīng)該反過來說才對)不論執(zhí)行查詢還是操作事務(wù)都如出一轍。這樣看來,JDBC 實(shí)際上是兩層封裝(JDBC 接口→JDBC 驅(qū)動(dòng)程序→數(shù)據(jù)庫 API),而 JPA 之流的封裝層次則更高了,難怪性能常常是老大難……