ubuntu下mysql的安裝、配置
參考來源:http://www.linuxidc.com/Linux/2013-01/78723p2.htm
Ubuntu 12.04下可以使用apt-get方式安裝MySQL,並沒有採用自己安裝再更改各種配置的方法,太麻煩了,如果想自己安裝再改配置的話,下面兩篇文章很值得參考:
本人只是圖省事而已,其實最好是自己安裝一下,好弄個清楚明白,下面介紹本人的傻瓜級安裝配置過程:
安裝配置MySql
1、安裝mysql-server和mysql-workbench,命令如下:
sudo apt-get install mysql-server
sudo apt-get install mysql-workbench
這裡要說明的是現在網上或書上的好多安裝教程都還是要安裝mysql-admin和mysql-query-browser,但現在已經不用了,只需安裝mysql-server即可,同時mysql-admin也會被預設安裝上,而mysql-query-browser的使命已經交給了mysql-workbench這個非常方便的前端管理器了,對mysql的一般性操作workbench足以勝任,反正lz是一直用workbench的,沒有用那個蛋疼的mysql-admin。
安裝mysql-server過程中會提示輸入root使用者的密碼,這個在windows上安裝時也有的,應該不陌生,但是卻沒有讓你指定資料庫的預設字符集,這個在windows上安裝時是有的,這樣可以提前避免一些中文支援的問題,但是在ubuntu上安裝時卻沒有提供這個選項,這樣的話安裝之後mysql是肯定不能支援中文的,不過這個問題也好解決,繼續往下看吧。
2、解決中文支援問題
(1)更改mysql自身配置以支援中文:
ubuntu下mysql的配置檔案為/etc/mysql/my.cnf,開啟後,
在[client]段下新增:
default-character-set = utf8
在[mysqld]段下新增:
character_set_server = utf8
init_connect = 'SET NAMES utf8'
在[mysql]段下新增:
default-character-set = utf8
在[mysqld_safe]段下新增:
default-character-set = utf8
重啟mysql後就能夠支援中文了,重啟命令為:
sudo /etc/init.d/mysql restart
可以在mysql下通過命令show variables like 'character%' 確認一下修改結果,如果顯示如下內容,說明修改成功:
+--------------------------------------+--------------------------------------+
| Variable_name | Value |
+--------------------------------------+--------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------------------+--------------------------------------+
(2)如果使用C語言訪問MySql資料庫的話,還要在程式碼中設定字符集以支援中文:
使用下面的函式解決問題
int mysql_set_character_set( MYSQL * mysql, char * csname)
返回值為0表示成功,非0值表示出現錯誤。
比如可以像下面的程式碼片段:
if (mysql_set_character_set(&my_connection, "utf8")) {
fprintf(stderr, "Set character set error %d: %s\n", mysql_errno(&my_connection), mysql_error(&my_connection));
}
好了,現在可以用workbench進行熟悉的操作了,介面和windows下一模一樣啊。
傻瓜教程結束,下面介紹在ubuntu下用C語言訪問MySql資料庫的方法。
用C語言訪問MySql資料庫
1、首先安裝開發包,命令如下:
sudo apt-get install libmysqlclient-dev
這個是必不可少的,一定要安裝的。
2、下面是測試用的程式碼,檔名為test.c:
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
int main(void) {
MYSQL my_connection;
mysql_init(&my_connection);
if (mysql_real_connect(&my_connection, "localhost", "root", "root", "student", 3306, NULL, 0)) {
printf("Connection success\n");
mysql_close(&my_connection);
} else {
fprintf(stderr, "Connection failed\n");
if (mysql_errno(&my_connection)) {
fprintf(stderr, "Connection error %d: %s\n", mysql_errno(&my_connection), mysql_error(&my_connection));
}
}
return EXIT_SUCCESS;
}
其中student是lz測試用的資料庫,3306是預設訪問埠,root既是使用者名稱也是密碼。
3、編譯程式碼,命令如下:
gcc -I/usr/include/mysql test.c -L/usr/lib/mysql -lmysqlclient -o test
其中/usr/include/mysql為標頭檔案mysql.h所在的目錄,而/usr/lib/mysql是對應的庫檔案mysqlclient所在的目錄,這個選項是連結時是要用到的。
4、執行程式碼:
./test
訪問成功時輸出Connection success
訪問失敗時輸出Connection failed以及相應的錯誤碼和錯誤原因
這樣就可以訪問資料庫了。