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作爲前端的管理界面。