1、安裝依賴包
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison
2、安裝boost庫:
首先先查詢是否已經安裝過boost
rpm -qa boost*
卸載舊boost-*等庫:
yum -y remove boost-*
下載Boost庫,在解壓後複製到/usr/local/boost目錄下,然後重新cmake並在後面的選項中加上選項 -DWITH_BOOST=/usr/local/boost
(下載:http://sourceforge.net/projects/boost/files/boost/)
注:mysql5.7.10 需要的boost版本爲1.59.0 不能是其他版本
下載地址:http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
3、下載mysql源碼
官網下載地址:http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.10.tar.gz
下載後解壓
4、安裝過程
(1)創建用戶,組
# groupadd mysql
# mkdir /home/mysql #自定義位置
# mkdir /home/mysql/data #自定義位置
# useradd -g mysql -d /home/mysql mysql
(2)編譯mysql
cmake -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
(3)安裝
第二步沒報錯情況下
make && make install
(4)初始化數據庫
進入安裝補錄下的bin目錄下,執行
./mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data
注:初始化後會生成默認密碼,請記錄下來
(5) 調整配置文件和環境變量參數
將默認生成的my.cnf備份
# mv /etc/my.cnf /etc/my.cnf.bak
進入mysql的安裝目錄支持文件目錄
# cd /mysql/support-files
拷貝配置文件模板爲新的mysql配置文件,
# cp my-default.cnf /etc/my.cnf
可按需修改新的配置文件選項, 不修改配置選項, mysql則按默認配置參數運行.
如下是我修改配置文件/etc/my.cnf, 用於設置編碼爲utf8以防亂碼
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
[client]
default-character-set=utf8
複製啓動腳本到init.d下
cp /mysql/support-files/mysql.server /etc/init.d/mysqld
增加執行權限
chmod 755 /etc/init.d/mysqld
創建mysql命令文件
ln -s /mysql/bin/mysql /usr/bin/
注:沒有這個文件就沒有mysql命令,不能在任意位置使用mysql 訪問數據庫
(6)啓動mysql
service mysqld start
(7)訪問數據庫
mysql -uroot -p
密碼爲剛纔生成的密碼
(8) 修改默認密碼
alter user 'root'@'localhost' identified by '123456';
注:不修改默認密碼,將不能正常使用sql,必須修改
介此,mysql5.7.10 安裝完成。
報錯記錄:
cmake 編譯時,可能會遇到boost庫報錯,原因分析:可能是下載的boost版本與mysql要求版本不一致,boost的版本必須是mysql指定的版本,低於或高於指定版本均不可。