CentOS操作系統基於Cmake編譯安裝MySQL

1.1 實驗環境

操作系統:CentOS6.7

虛擬機:VMware Workstation

數據庫系統:mysql-5.6.15.tar.gz

1.2  實驗背景

從MySQL5.5版本開始,MySQL源碼安裝的編譯工具由configure開始向cmake過渡,安裝方式和MySQL5.5之前的版本略有不同。在這裏簡單小結下。

     源碼編譯安裝最容易出錯,也是最耗時間。sky建議初學者學會一種方式之後,嘗試應用多種方式安裝。

     安裝之前,最好檢查一些基礎軟件,例如 make, GCC, Perl,libncurses5-dev,cmake-2.8.5, ncurses-devel是否都已經安裝,如果沒有安裝,用yum  -y install gcc gcc-c++  make cmake bison ncurses-devel安裝補全,否則在編譯和安裝時報錯。

1.3  安裝Cmake

#進入源代碼目錄

[root@localhost src]# cd /usr/local/src

#下載安裝文件

[root@localhost src]# wgethttp://wwwNaNake.org/files/v2.8/cmake-2.8.5.tar.gz

#解壓縮

[root@localhost src]# tar zxvfcmake-2.8.5.tar.gz

#安裝

[root@localhost src]# cd cmake-2.8.5

[root@localhost src]#./bootstrap

[root@localhost src]# gmake

[root@localhost src]# gmake install

#退回源代碼目錄

cd ../

1.4 cmake簡介

CMake 是"cross platform make"的縮寫。它是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。

和之前configure的語法對比如下

                             wKioL1XF4U7zpsk4AABxyhFIBSk224.jpg

安裝選項的對比如下:

wKiom1XF31zyCfxHAAGWgclIuFU695.jpg

1.5  安裝bison-2.5

#下載安裝文件

[root@localhost src]# wgethttp://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz

#解壓縮

[root@localhost src]# tar zxvfbison-2.5.tar.gz

#安裝

[root@localhost src]# cd bison-2.5

[root@localhost src]#./configure

[root@localhost src]# make

[root@localhost src]# make install

#退回源代碼目錄

cd ../

1.6 Mysql安裝

#創建mysql用戶和組

[root@localhost src]# /usr/sbin/groupaddmysql

[root@localhost src]# /usr/sbin/useradd-g mysql mysql

[root@localhost src]# mkdir/usr/local/mysql       #建立數據庫目錄

[root@localhost src]# mkdir/usr/local/mysql/data   #建立數據庫文件夾

#取源代碼放到目錄下/usr/local

#解壓縮進入安裝目錄

[root@localhost src]# tar  xvf mysql-5.5.27.tar.gz

[root@localhost src]# cd  mysql-5.5.27

#編譯

[root@localhost mysql]# cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL_USER=mysql

#安裝

[root@localhost mysql]## make&&makeinstall

1.7  安裝後

1.7.1 鏈接文件

ln -s /usr/local/mysql/lib/libmysqlclient.so.18/usr/lib64/

#不執行這一步,運行時可能會出現如下錯誤

error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

1.7.2   設置PATH環境變量

Vi  /etc/profile

#在profile最後加上

export PATH=”/usr/local/mysql/bin:$PATH”

#保存後

source  /etc/profile

1.7.3   配置參數文件

cd support-files

cp my-large.cnf /etc/my.cnf

#編輯my.cnf,加入以下內容或是在原有路徑上修改如下:

basedir         = /usr/local/mysql

datadir         = /usr/local/mysql/data

log-error       = /usr/local/mysql/data/mysql_error.log

pid-file        = /usr/local/mysql/data/mysql.pid

socket         =/usr/local/mysql/data/mysql.socket //如果已經有,則修改目錄爲mysql的數據目錄,此處是/usr/local/mysql/data

 1.7.4 設置權限

[root@localhost mysql]#  cd /usr/local/mysql

[root@localhost mysql]#  chown –R mysql  .  #注意mysql後空格後加點,修改權限。

[root@localhost mysql]# chgrp –R mysql  .  #注意mysql後空格後加點,修改權限。

1.7.5  mysql 初始化安裝

cd /usr/local/mysql/

[root@localhost mysql]# scripts/mysql_install_db\
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--user=mysql \

--force

如果產生錯誤like:‘WARNING: The host '***' could not be looked up with resolveip’

執行時加上 –force 選項

1.7.6  修改權限

#將安裝目錄所有權改爲root,數據目錄的所有權改爲你運行mysqld的用戶

cd /usr/local/mysql

[root@localhost mysql]# chown -R root .   #注意root後空格加點。

[root@localhost mysql]# chown -R mysqldata

1.8  配置服務

#配置服務

cd /usr/local/mysql/support-files

[root@localhost support-files]# cpmysql.server  /etc/init.d/mysqld

[root@localhost support-files]# chmod+x  /etc/init.d/mysqld

[root@localhost support-files]# chkconfig --add mysqld   #開機自動啓動

[root@localhost support-files]# chkconfig --level 345 mysqld on

1.9  啓動與停止 mysql

[root@localhost ~]# service mysqldstart

Starting MySQL SUCCESS!

[root@localhost ~]# service mysqld stop

Shutting down MySQL... SUCCESS!

1.10  設置Mysql用戶賬號密碼

mysql安裝後默認生成兩個帳號:一個是root,未設置密碼,可以從本機登錄到mysql;另一個是匿名帳號,無帳號名、無密碼,可以從本機登錄,未提供用戶名的連接都將假定爲此帳號。這樣的設置存在着安全隱患,按下面的步驟進行更改。

 1) 修改root的密碼

執行命令:/usr/local/mysql/bin/mysqladmin–u root –p舊密碼 password 新密碼或者用root登錄數據庫

# mysql –u root

登錄以後執行

Mysql>set password for ‘root’@’hostname’=password(‘新密碼’);

或者執行

Mysql>update mysql.user setpassword=password(‘新密碼’) 

—>where user = ‘root’ and host =’hostname’;

如果不知道hostname,可先執行select host,user from mysql.user where user=’root’

2)刪除匿名用戶

Root 登錄後執行

mysql> delete from mysql.user where user=’’ ; 刪除用戶名爲空的記錄

mysql> delete from mysql.user where password=’’ ; 刪除密碼爲空的記錄

3) 修改完用戶權限以後,執行

Mysql> flush privileges;

    因爲MySQL啓動後,所有用戶權限都是加載到內存中的;但有些權限更新操作不會刷新到內存中,這樣只有下次啓動時才生效,如果直接update mysql.user來修改密碼等;flush privileges 強制讓MySQL重新加載權限,這樣剛纔修改的就馬上生效了。

    小結:IT技術更新好快,如果要做好一個運維專家,學的東西太多了,就例如我們上面的例子,僅是一個升級版本,對運維技術人員來說,又要花上幾個小時研究一下。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章