MYSQL5.6&5.7編譯安裝
阿新 • • 發佈:2022-05-03
此文只是幫助剛開始接觸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)