編譯安裝mysql5.6.16

mysql5.6.16的安裝和之前的5.5、5.1有些不同,編譯的時候不再使用./configure來進行了,使用了cmake命令來進行編譯項目。


1.準備編譯環境


因爲我的Linux是剛安裝的,需要安裝很多的必要程序。

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel gcc \ 

       autoconf automake zlib* fiex* libxml* libmcrypt* libtool-ltdl-devel*


2.下載MySQL


進入http://dev.mysql.com/downloads/mysql/ 的source/Generic Linux (Architecture Independent), Compressed TAR Archive,文件mysql-5.6.16.tar.gz。


wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz

tar xvf mysql-5.6.16.tar.gz

cd mysql-5.6.16

3.編譯源碼


接下來組織項目

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/tmp/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

注意,這個cmake是替代以前的./configure 步驟。如果你需要更多的參數,請參考http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html。


有時候會出現類似的問題。


Googlemock was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source. — If you are inside a firewall, you may need to use an http proxy: export http_proxy=http://example.com:80

使用參數-DENABLE_DOWNLOADS=1 自動下載。

有網絡限制,設置http代理export http_proxy=http://example.com:80。環境變量http_proxy 也爲 curl 等其他工具所用。儘管 yum 可以識別大寫或小寫的 http_proxy,但curl 要求環境變量的名稱是小寫。

如果這個cmake這個步驟有出現問題,解決後重新再cmake一次。如果輸出類似這樣,那麼就好了。

-- Running cmake version 2.6.4

-- MySQL 5.6.16

-- Packaging as: mysql-5.6.16-Linux-x86_64

-- HAVE_VISIBILITY_HIDDEN

-- HAVE_VISIBILITY_HIDDEN

-- HAVE_VISIBILITY_HIDDEN

-- Using cmake version 2.6.4

-- Not building NDB

-- Library mysqlclient depends on OSLIBS -lpthread;m;rt;dl

-- GMOCK_SOURCE_DIR:/root/mysql-5.6.16/source_downloads/gmock-1.6.0

-- GTEST_LIBRARIES:gmock;gtest

-- Library mysqlserver depends on OSLIBS -lpthread;m;rt;crypt;dl

-- Configuring done

-- Generating done

-- Build files have been written to: /root/mysql-5.6.16

4.接着編譯源碼


make && make install

編譯時間緩慢,等待中…


修改文件權限,生成數據庫


groupadd mysql

useradd -r -g mysql mysql

cd /usr/local/mysql

chown -R mysql:mysql .

scripts/mysql_install_db --user=mysql --ldata=/data/mysql/data

chown -R root .

chown -R mysql data

說明:參數--ldata說明你的數據文件存放的目錄,如果你使用默認的路徑,那麼這個參數可以去除。如果你不增加此參數,但是在配置文件(見下方的datadir配置)中指定了其他的目錄,那麼會在啓動MySQL的時候出現類似的提示:


Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/data/VM_208.pid).

出現這個的解決辦法就是增加--ldata參數,指定和配置文件中datadir相同的值,重新執行mysql_install_db即可。


5.設置配置文件


MySQL 5.6.8開始,就不在分發my.cnf等配置的demo,所以想隨便拿一個用都比較麻煩。


my.cnf的配置文件的默認讀取順序爲

File Name(上面的優先) Purpose

/etc/my.cnf Global options

/etc/mysql/my.cnf Global options

SYSCONFDIR/my.cnf Global options

$MYSQL_HOME/my.cnf Server-specific options

defaults-extra-file The file specified with --defaults-extra-file=path, if any

~/.my.cnf User-specific options

~/.mylogin.cnf Login path options

[client]

port=3306

socket=/var/lib/mysql/mysql.sock

default-character-set = utf8

 

[mysqld]

port=3306

bind-address=127.0.0.1

basedir=/usr/local/mysql

datadir=/data/data/mysql/data

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

 

############# default settings  ################

# time zone

default-time-zone = system

character-set-server = utf8

default-storage-engine = InnoDB

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

我的這個配置比較簡單,聲明一下常用的變量,如果你需要對性能優化,那麼你需要細細研讀一下配置文件。可以參考


http://www.ha97.com/4110.html

http://dev.mysql.com/doc/refman/5.6/en/server-options.html

啓動MySQL,開機自動啓動設置


手動啓動MySQL。


cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

/etc/init.d/mysql start

##或者

service mysql start

在上面的步驟後,開機自動啓動設置


chkconfig --add mysql

##有的系統需要下面的

chkconfig --level 345 mysql on

可以參考:http://dev.mysql.com/doc/refman/5.6/en/automatic-start.html


6.修改root密碼


默認的密碼是空的,很危險,需要修改一下。


在此之前,爲方便調用mysql,我們先生成一個mysql的軟鏈。


ln -s /usr/local/mysql/bin/mysql /usr/bin/

然後修改密碼


mysql -uroot  -h127.0.0.1 -p

mysql> SET PASSWORD = PASSWORD('123456');

將來如果你忘記了root密碼,可以參考重置MySQL密碼。


通過上面的步驟,就可以使用MySQL數據庫了,另外可以爲mysql安裝phpmyadmin作爲前端的管理界面。


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