1. 程式人生 > >ubuntu下mysql的安裝、配置

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以及相應的錯誤碼和錯誤原因

這樣就可以訪問資料庫了。