編譯安裝mysql-5.5.11
在mysql5.5以上的版本採用的是cmake編譯安裝,不在採用之前gnu autotools 工具的 ./configure make make install編譯安裝了。
Cmake的重要特性之一是其獨立於源碼(out-of-source)的編譯功能,即編譯工作可以在另一個指定的目錄中進行,這可以保證源碼目錄不受任何一次編譯的影響,因此在同一個源碼樹上可以進行多次不同的編譯,比如針對不同的平臺編譯。
一.編譯環境的準備
安裝所需要系統庫相關庫文件
gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
源碼包:
cmake-2.8.10.2.tar.gz mysql-5.5.11.tar.gz
源碼包地址:
http://pan.baidu.com/s/1eQwGXVW
二.編譯安裝cmake
[root@mysql MASQL]# tar -zxvf cmake-2.8.10.2.tar.gz
[root@mysql MASQL]# cd cmake-2.8.10.2
[root@mysql cmake-2.8.10.2]# ./bootstrap
[root@mysql cmake-2.8.10.2]# make && make install
三.編譯安裝mysql
1.創建mysql安裝目錄
[root@mysql cmake-2.8.10.2]# make /usr/local/mysql
2.創建數據存放目錄
【Mysql的數據目錄應該放在一個獨立的lv上】
[root@mysql MASQL]# mkdir -p /data/mysql
3.創建用戶和用戶組與賦予數據存放目錄權限
[root@mysql MASQL]# groupadd -r mysql
[root@mysql MASQL]# useradd -r -g mysql -s /sbin/nologin mysql
[root@mysql MASQL]# chown mysql.mysql /data/mysql/
4.編譯安裝mysql-5.5.11
[root@mysql MASQL]# tar -zxvf mysql-5.5.11.tar.gz
[root@mysql MASQL]# cd mysql-5.5.11
[root@mysql mysql-5.5.11]# cmake -DCMAKE_INSTALL_PREFIX=/usr/loca l/mysql \
> -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DMYSQL_DATADIR=/data/mysql \
> -DMYSQL_USER=mysql \
> -DMYSQL_TCP_PORT=3306
[root@mysql mysql-5.5.11]# make
[root@mysql mysql-5.5.11]# make install
[以下是對配置參數的詳細解釋,這裏介紹的比我配置的要多,大家在配置的時候根據需要添加]
cmake -DCMAKE_INSTALL_PREFIX=/usr/loca l/mysql \
指定camke編譯軟件的安裝路徑
> -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
指定cmake編譯軟件的默認套接字文件路徑
> -DDEFAULT_CHARSET=utf8 \
指定默認的字符集爲utf8
> -DDEFAULT_COLLATION=utf8_general_ci \
指定默認的排序規則
> -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
啓用LOCAL_INFILE
> -DMYSQL_DATADIR=/data/mysql \
指定cmake編譯軟件的數據安裝路徑
>-DSYSCONFDIR=/usr/local/mysql
指定cmake編譯軟件的配置文件路徑
> -DMYSQL_USER=mysql \
> -DMYSQL_TCP_PORT=3306
指定camke編譯軟件的默認端口
>-DWITH_DEBUG=0
表示不啓用DEBUG功能
>-DENABLE_PROFILING=1
表示啓用PROFILING功能,PROFILING表示性能分析
5.複製配置文件並且增加一些內容
[root@mysql mysql-5.5.11]# cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
support-files下面有這樣四個文件,根據你機器的內存大小可以選擇複製哪一個文件,由大到小依次爲:
my-huge.cnf my-large.cnf my-medium.cnf my-small.cnf
通常複製my-medium.cnf即可
#如果你的機器的內存較大,可以複製My-huge.cnf文件
vim /usr/local/mysql/my.cnf
在[mysqld]這個模塊中添加以下兩行,其實主要是添加第二行【數據文件存儲路徑】
basedir=/usr/local/mysql
datadir=/data/mysql/
6.初始化數據庫
(執行前 需要chmod 755 scripts/mysql_install_db 賦給文件執行權限)
[root@mysql mysql-5.5.11]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
注:#basedir mysql安裝路徑 datadir 數據庫文件儲存路徑
7.設置mysqld的開機啓動:
[root@mysql mysql-5.5.11]# cp support-files/mysql.server /etc/init.d/mysql
[root@mysql mysql-5.5.11]# chmod 755 /etc/init.d/mysql
[root@mysql mysql-5.5.11]# chkconfig mysql on
8.配置環境
爲了方便,將mysql 的bin目錄加到PATH中,在/etc/profile中加入myslq/bin
export PATH=/usr/local/mysql/bin:$PATH
[root@mysql mysql-5.5.11]# source /etc/profile [這一步別忘了哦,否則系統還是不能識別你新增加的環境變量]
9啓動mysql服務
[root@mysql mysql-5.5.11]# /etc/init.d/mysql start
Starting MySQL.... SUCCESS!
如果你在啓動服務的時候出現了以下報錯:
[root@mysql mysql-5.5.11]# /etc/init.d/mysql start
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/mysql.pid).
解決辦法:
vim /usr/local/mysql/my.cnf
在[mysqld]這個模塊中添加以下兩行,其實主要是添加第二行【數據文件存儲路徑】
basedir=/usr/local/mysql
datadir=/data/mysql/
啓動完成之後用ps -ef |grep mysql 命令查看是否啓動
[root@mysql mysql-5.5.11]# mysql -u root -p
Enter password:
【直接回車,因爲此時root用戶是沒有密碼的,若登錄到mysql服務器證明一切配置ok】
四. 標準的mysql服務配置
1.設置root帳戶的密碼
[root@mysql mysql-5.5.11]# mysqladmin -u root password 'mysqlroot'
2.刪除本機匿名連接的空密碼帳號
【刪除原因:mysql默認安裝完成後一般會生成五個用戶,三個root 兩個匿名用戶
root:[email protected] root@localhost root@hostname 匿名:@localhost @hostname,而且這些用戶是不需要密碼就可以登錄mysql服務器的,這對於mysql服務器是及其不安全的】
本機登錄mysql
[root@mysql mysql-5.5.11]# mysql -u root -p
然後輸入上面設置的密碼,登錄後在mysql的命令行中執行:
mysql> use mysql; //選擇默認數據庫mysql
mysql> update user set password='root' where user = '127.0.0.1';
mysql> delete from user where password="";
mysql> flush privileges;
mysql> quit