LINUX環境下MYSQL5.5.18源碼安裝

p_w_picpath

 

Mysql5.5.*之後必須用cmake進行編譯mysql

Cmake 安裝包能夠官網下載http://www.cmake.orglinux

1、安裝cmake:sql

1)解壓cmake:#tar -zvxf cmake-version.tar.gzshell

2)配置編譯:數據庫

進入cmake解壓目錄bootstrap

# ./bootstrap; make; make install //調用cmake 編譯腳本bootstrap 並編譯安裝app

2、安裝MYSQLide

1)解壓mysql-5.5.18.tar.gz:#tar -zvxf mysql-5.5.18.tar.gz工具

建立數據目錄(mysql5.5默認已經沒有data目錄了)測試

mkdir /server/mysql/ -p //創建MYSQL安裝目錄,-p選項是連續創建不存在

mkdir /server/mysql/data -p //創建MYSQL數據目錄,的目錄。

注:通常都將安裝在/usr/local/目錄下,方便管理,可將/server用/usr/local/替換

2)配置編譯

#cd mysql-5.5.18

#cmake . //這個方法,安裝路徑默認

#cmake . \

-DCMAKE_INSTALL_PREFIX:PATH=/server/mysql \

-DMYSQL_DATADIR:PATH=/server/mysql/data _install_db --user=mysql --i

(指定了DATA路徑之後須要在初始化數據庫的時候加上—datadir參數:

scripts/mysql_install_db --user=mysql –-datadir=/server/mysql/data,不然數據庫

沒法啓動)

關於安裝編譯樹,可根據具體狀況進行增長具體須要的編譯選項

進入MYSQL解壓目錄讀取README文檔可查看全部與安裝相關的選項

cmake . -LAH --查看詳細編譯選項。

注意一:第2步的安裝過程當中可能有問題,例如:CMake Error: The source directory 「*」 does not appear to contain CMakeLists.txt.Specify –help for usage, or press the help button on the CMake GUI.

是安裝版本錯了,好比在 http://dev.mysql.com/downloads/mysql/ 下載頁面時,咱們要選擇的是 MySQL Community Server 下的 Source Code,如圖:

clip_p_w_picpath001

而後在顯示的列表中選擇 「Generic Linux mysql-5.5.x.tar.gz」 那個版本的×××。

注意二:Ubuntu 10.10 下安裝mysql所需工具:cmake, GNU make, gcc, Perl, libncurses5-dev, bison(可選), chkconfig。例如:缺乏libncurses5-dev (ncurses-devel)

----若差了這個包,在cmake的時候會報錯。

----Debian/Ubuntu上的包名是libncurses5-dev,RedHat和其餘版本對應的是ncurses-devel

----shell:~$ sudo apt-get install libncurses5-dev

----報錯信息

------------------www.linuxidc.com---------------

-- MySQL 5.5.8

-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:82 (MESSAGE):

Curses library not found. Please install appropriate package,

remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu , package name is libncurses5-dev ,

on RedHat and derivates it is ncurses-devel.注意,在安裝好libncurses5-dev以後,從新cmake以前,要將生成的CMakeCache.txt文件刪除,不然繼續報錯。

3)、安裝:

#make && make install --編譯並安裝MYSQL

注意:可將如下操做命令編輯成shell腳本一次執行完成全部操做。

#groupadd mysql --增長用戶組

#useradd -r -g mysql mysql –增長用戶

#cd /server/mysql –進入MYSQL安裝目錄

#chown -R mysql:mysql . –更改MYSQL目錄下全部文件目錄屬主於MYSQL組

MYSQL用戶

#scripts/mysql_install_db --user=mysql --用mysql用戶初始化數據庫(注意前面所講,要加上-datadir=/server/mysql/data選項,不然沒法啓動)

#chown -R root . 更改MYSQL目錄下全部文件目錄屬主於ROOT 用戶

#chown -R mysql data 更改MYSQL目錄下數據文件目錄屬主於mysql 用戶

#cp ./support-files/ my-medium.cnf /etc/my.cnf –拷MYSQL的配置文件到/etc下

cp support-files/mysql.server /etc/rc.d/init.d/mysql --拷貝/server/mysql/support-

files /mysql.server 文件到 /etc/rc.d/init.d/目錄下並重名爲mysql 這步的做用是把

MYSQL做成服務

service mysql start 啓用服務

/server/mysql/bin/mysql –uroot –p 登陸進入MYSQL

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'longmaster' WITH

GRANT OPTION; 增長root用戶,並設定密碼.

flush privileges; 刷新授權使用新增root用戶生效

編輯 /etc/my.cnf文檔 在[mysqld]段加入 skip-name-resolve -- 跳過主機名字解析。 oservice mysql restart

另外一種可參考的後續配置及問題解決:

----進入mysql安裝目錄下的腳本目錄

shell:~$ cd /usr/local/mysql/scripts

----利用mysql_install_db腳本生成新的MySQL 受權表

./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/system_username/Programming/mysql/mysqldata

--user=mysql

----進入mysql安裝目錄下的支持文件目錄

shell:~$ cd /usr/local/mysql/support-files

----複製mysql配置文件

shell:~$ sudo cp my-medium.cnf /etc/my.cnf

----複製服務文件並修改

shell:~$ sudo cp mysql.server mysqld

----修改mysqld

basedir=/usr/local/mysql

datadir=/home/mysql

mv mysqld /etc/init.d/mysqld

----啓動服務

shell:~$ service mysqld start

----關閉服務

shell:~$ service mysqld stop

---------------------------------

service命令:

1. 用於管理Linux系統中服務的命令

2. 做用是去/etc/init.d目錄下尋找相應的服務,進行開啓和關閉等操做

3. 上述操做後,mysqld服務文件對應mysql.server文件

---------------------------------

----添加服務到自啓動項

shell:~$ sudo chkconfig --level 3 mysqld on

----設置軟鏈接使mysql, mysqldump, mysqladmin這三個命令能在shell中直接運行

shell:~$ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin

shell:~$ sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin

shell:~$ sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

---------------------------------

=>mysql數據庫中文亂碼解決 :

1. 亂碼分析

----從終端shell進入mysql

shell:~$ mysql

............

............

mysql> show variables like '%character%'

----獲得如下數據庫編碼信息表:

+----------------------------------- +-------------------------------------------+

| Variable_name | Value |

+------------------------------------+-------------------------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/local/mysql/share/charsets/ |

+------------------------------------ +-------------------------------------------+

能夠看出character_set_database ,character_set_server 的編碼仍是默認的latin1。

不知道爲何,以前DEFAULT_CHARSET設置成爲utf8的,好像沒起做用。查看官方文檔

發現,character_set_database不支持配置文件(/etc/my.cnf)變量設置,

可是character_set_server 支持配置文件變量設置。

2. 解決辦法

----打開配置文件

shell:~$ sudo gedit /etc/my.cnf

而後在[mysqld]配置選項下添加

character-set-server = utf8

----而後進入mysql

執行:

mysql> show variables like '%character%'

結果:character_set_database ,character_set_server兩項都變爲utf8了

----測試:

往數據庫表中插入中文字段,中文就正常顯示了。

注:1.用5.1版本的時候以下方法是能夠解決中文編碼問題的

----在配置文件〔mysqld]和〔client]節下分別添加: default-character-set = utf8

2.不知到是否是手動編譯的緣由,在5.5.8中配置文件中用上述方法會形成數據庫服務沒法啓動。

----錯誤日誌以下:( datadir/username.err爲錯誤日誌文件)

----------------------------------------------------

mysqld_safe mysqld from pid file /home/cyberwym/Programming/mysql/mysqldata/cyberwym.pid ended

...........

...........

[ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'default-character-set=utf8'

[ERROR] Aborting

----------------------------------------------------

----這樣會形成pid文件(datadir/username.pid)沒法更新

----在配置文件〔mysqld]和〔client]節下分別去掉: default-character-set = utf8 後,數據庫服務就啓動正常了

相關文章
相關標籤/搜索