1. 程式人生 > 其它 >MYSQL5.6&5.7編譯安裝

MYSQL5.6&5.7編譯安裝

此文只是幫助剛開始接觸MYSQL的同學安裝。可能會因為作業系統環境不一樣,缺一些包,根據報錯修復即可。裝好後可以打包成RPM包,方便後續安裝。

  • CMake編譯工具

下載地址:https://cmake.org/download/

[root@shell ~]# wget -c https://cmake.org/files/v3.9/cmake-3.9.1.tar.gz
[root@shell ~]# tar -zxf cmake-3.2.1.tar.gz && cd cmake-3.9.1
[root@shell cmake-3.2.1]# ./configure 
[root@shell cmake-3.2.1]# make && make install  [預設安裝路徑是/usr/local/bin]
[root@shell cmake-3.2.1]# cmake --version       [檢視cmake版本]
cmake version 3.9.1
  • bison:GNU分析器生成器(Mysql5.7需要)

下載地址:http://ftp.gnu.org/gnu/bison/或

http://www.boost.org/users/history/version_1_58_0.html

[root@shell ~]# wget -c http://git.shell.com/libs/ccpp/bison-3.0.tar.gz
[root@shell ~]# tar -zxf bison-3.0.tar.gz && cd bison-3.0/ && ./configure
[root@shell bison-3.0]# make && make install
  • Boost庫:一個開源可移植的C++庫,是C++標準化程序的開發引擎之一(Mysql5.7需要)

下載地址:https://dl.bintray.com/boostorg/release/1.64.0/source/

[root@shell ~]# wget -c http://git.shell.com/libs/ccpp/boost_1_57_0.tar.bz2
[root@shell ~]# tar -jxf boost_1_57_0.tar.bz2 && cd boost_1_57_0/
[root@shell boost_1_57_0]# ./bootstrap.sh
[root@shell boost_1_57_0]# ./b2 stage threading=multi link=shared
[root@shell boost_1_57_0]# ./b2 install threading=multi link=shared
  • 初始化目錄
useradd mysql
mkdir -p /home/servers/mysql
mkdir -p /home/servers/mysql/etc
mkdir -p /home/data/mysql/data
mkdir -p /home/data/mysql/tmp
mkdir -p /home/data/mysql/log
mkdir -p /home/data/mysql/dumps
mkdir -p /home/data/mysql/undo
chown mysql.mysql -R /home/data/mysql
chown mysql.mysql -R /home/servers/mysql/
  • 可能會需要ncurses-devel (Mysql5.6需要)
yum install ncurses-devel
  • 編譯安裝Mysql
cmake 
-DCMAKE_INSTALL_PREFIX=/home/servers/mysql 
-DMYSQL_DATADIR=/home/data/mysql/data 
-DSYSCONFDIR=/home/servers/mysql/etc 
-DWITH_MYISAM_STORAGE_ENGINE=1 
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_MEMORY_STORAGE_ENGINE=1 
-DWITH_READLINE=1 
-DMYSQL_UNIX_ADDR=/home/data/mysql/tmp/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 
make && make install
  • 修改配置檔案my.cnf
vi /home/servers/mysql/etc/my.cnf
  • 新增環境變數
export PATH=$PATH:$HOME/bin:/home/servers/mysql/bin
  • 初始化庫(Mysql5.6)
/home/servers/mysql/scripts/mysql_install_db --user=mysql --basedir=/home/servers/mysql --datadir=/home/data/mysql/data
  • 啟動mysql
/home/servers/mysql/bin/mysqld_safe --defaults-file=/home/servers/mysql/etc/my.cnf &
  • 登入並修改使用者密碼
/home/servers/mysql/bin/mysql -uroot 
  • Mysql5.7安裝不同

mysql_install_db 已經不再推薦使用了,建議改成 mysqld –initialize 完成例項初始化。如果 datadir 指向的目標目錄下已經有資料檔案,則會有[ERROR] Aborting;

在初始化時如果加上 –initial-insecure,則會建立空密碼的 root@localhost 賬號,否則會建立帶密碼的 root@localhost 賬號,密碼直接寫在 log-error 日誌檔案中;新使用者登入後需要立刻修改密碼,否則無法繼續後續的工作。

修改初始化密碼&格式化

/home/servers/mysql/bin/mysql_secure_installation 
/home/servers/mysql/bin/mysqld --initialize --initial-insecure --console

啟動同上

  • 5.7後my.cnf增加:
sql_mode = NO_ENGINE_SUBSTITUTION (採用MySQL5.6預設sql_mode)
bulk_insert_buffer_size = 64M (批量插入資料快取大小,可以有效提高插入效率)
binlog_rows_query_log_events =on (可以檢視row格式下的sql語句)
innodb_adaptive_hash_index_parts=128 (避免單個索引導致的鎖爭用)
show_compatibility_56=on 從庫並行複製: (只在從庫新增)
slave-parallel-type=LOGICAL_CLOCK (從庫並行複製)
slave-parallel-workers=16 (預設為4,可調整,需要stop slave;start slave;)
slave_preserve_commit_order=1(保證主從庫併發執行時,事物順序一致,可以動態修改)
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

修改:

binlog_format=row   (原 mixed)
join_buffer_size=128M (原256K)
max_allowed_packet=1024M(原16M)
sort_buffer_size=64M (原128K)