Mysql 編譯安裝 version 5.7.13
阿新 • • 發佈:2021-11-04
1.解除安裝系統自帶boots庫
1 [root@localhost] #yum -y remove boost-*
2.解除安裝系統自帶的mysql and mariadb
1 [root@localhost] #yum -y remove mysql 2 rpm -qa|grep mariadb ###centos7 自帶部分資料庫資訊 3 yum remove mariadb-libs -y ###移除自帶資料庫
3.安裝必要的資源依賴包
1 [root@localhost] #yuminstall cmake,make,gcc,gcc-c++,bison, ncurses,ncurses-devel -y
4.安裝boost 庫1.59和mysql包
[root@localhost] wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz [root@localhost] wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
5.對boots包和mysql包進行解壓到對應的目錄下
1 [root@localhost] tarzxf boost_1_59_0.tar.gz -C /usr/local/ 2 [root@localhost] tar zxf mysql-5.7.13.tar.gz -C /opt/
6.解壓完成後建立使用者及其相關目錄
1 groupadd mysql #mysql使用者組 2 useradd -r -g mysql -s /sbin/nologin mysql #新增mysql使用者 3 mkdir /data/mysql #建立資料目錄 4 chown -R mysql:mysql /data/mysql/ #修改資料目錄為mysql5 chown -R mysql:mysql /home/mysql/
7. 配置mysql預編譯引數
1 [root@localhost] # cd mysql-5.7.13 2 [root@localhostmysql-5.7.13]# cmake -DCMAKE_INSTALL_PREFIX=/home/mysql \ 3 -DMYSQL_DATADIR=/home/mysql/ \ #資料存放目錄 4 -DDEFAULT_CHARSET=utf8 \ 5 -DDEFAULT_COLLATION=utf8_general_ci \ 6 -DMYSQL_TCP_PORT=3306 \ 7 -DMYSQL_USER=mysql \ 8 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 9 -DWITH_MYISAM_STORAGE_ENGINE=1 \ 10 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ 11 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 12 -DWITH_MEMPRY_STORAGE_ENGINE=1 \ 13 -DDOWNLOAD_BOOST=1 \ 14 -DWITH_BOOST=/usr/local/boost #boost原始碼路徑 15 16 17 #配置解釋 18 官方 工具選項解析 19 20 -DCMAKE_INSTALL_PREFIX=/usr/local/es/mysql57/ \ #安裝目錄 21 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ 伺服器偵聽套接字連線的Unix套接字檔案路徑,預設/tmp/mysql.sock。 這個值可以在伺服器啟動時用–socket選項來設定。所以這條可以去掉 22 -DMYSQL_DATADIR=/data/mysql \ MySQL資料目錄的位置。 該值可以在伺服器啟動時使用–datadir選項進行設定。 23 -DSYSCONFDIR=/etc \ 預設的my.cnf選項檔案目錄。 此位置不能在伺服器啟動時設定,但可以使用–defaults-file = file_name選項使用給定的選項檔案啟動伺服器,其中file_name是該檔案的完整路徑名。 24 -DMYSQL_USER=mysql \ 指定使用者名稱 25 -DMYSQL_TCP_PORT=3306 \ 伺服器偵聽TCP / IP連線的埠號。預設值是3306。 該值可以在伺服器啟動時使用–port選項進行設定。 26 -DWITH_XTRADB_STORAGE_ENGINE=1 \ 儲存引擎 XTRADB 27 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 儲存引擎 INNOBASE 28 -DWITH_PARTITION_STORAGE_ENGINE=1 \儲存引擎 PARTITION 29 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \儲存引擎 BLACKHOLE 30 -DWITH_MYISAM_STORAGE_ENGINE=1 \ 儲存引擎 MYISAM 31 -DWITH_READLINE=1 \ 32 -DENABLED_LOCAL_INFILE=1 \ 該選項控制MySQL客戶端庫的已編譯預設LOCAL功能???啥意思 33 -DWITH_EXTRA_CHARSETS=1 \ 這個為什麼是1,文件不是name ,字串嗎? 要包含哪些額外的字符集: all complex none 34 -DDEFAULT_CHARSET=utf8 \ 伺服器字符集。預設情況下,MySQL使用latin1(cp1252西歐)字符集。 該值可以在伺服器啟動時使用–character_set_server選項進行設定。 35 -DDEFAULT_COLLATION=utf8_general_ci \ 伺服器整理。預設情況下,MySQL使用latin1_swedish_ci。該值可以在伺服器啟動時使用–character_set_server選項進行設定。 36 -DEXTRA_CHARSETS=all \ 37 -DWITH_BIG_TABLES=1 \ 38 -DWITH_DEBUG=0 是否包含除錯支援。 39 -DWITH_BOOST=/usr/local/boost #把定boost 目錄
8.編譯並安裝
1 [root@localhostmysql-5.7.13]# make -j (-j引數是加快編譯速度) 2 [root@localhostmysql-5.7.13]# make install
9.配置環境變數
1 cd /home/mysql/ 2 cp support-files/mysql.server /etc/init.d/mysqld //複製啟動項 3 4 echo 'export PATH=$PATH:/opt/mysql/bin' >>/etc/profile ###設定環境變數 5 source /etc/profile ###立即執行 6 mysql -V 7 [root@shell /home/mysql20:46:55]# mysql -V 8 mysql Ver 14.14 Distrib 5.7.13, for Linux (x86_64) using EditLine wrapper
10.初始化系統資料庫
mysqld --initialize-insecure --user=mysql --basedir=/homw/mysql --datadir=/data/mysql 可能出現報錯 說/data目錄有資料 執行 rm -rf /data/mysql/* 再次執行初始化命令
11.配置檔案及引數優化
1 [root@localhostmysql-5.7.13]# cp /home/mysql/support-files/my-default.cnf /etc/my.cof //複製配置檔案 2 #參考如下配置檔 3 [root@shell ~20:55:34]# cat /etc/my.cof |grep -Ev "#^|^$" 4 [mysqld] 5 port=3306 6 user=mysql 7 basedir=/home/mysql 8 datadir=/data/mysql 9 socket=/tmp/mysql.sock 10 [mysql] 11 socket=/tmp/mysql.sock 12 13 # vim /etc/my.conf 參考 14 [client] 15 port = 3306 16 socket = /tmp/mysql.sock 17 [mysqld] 18 port = 3306 19 socket = /tmp/mysql.sock 20 user = mysql 21 basedir = /usr/local/mysql 22 datadir = /data/mysql/data 23 pid-file = /data/mysql/mysql.pid 24 25 log_error = /data/mysql/mysql-error.log 26 slow_query_log = 1 27 long_query_time = 1 28 slow_query_log_file = /data/mysql/mysql-slow.log 29 30 31 skip-external-locking 32 key_buffer_size = 32M 33 max_allowed_packet = 1024M 34 table_open_cache = 128 35 sort_buffer_size = 768K 36 net_buffer_length = 8K 37 read_buffer_size = 768K 38 read_rnd_buffer_size = 512K 39 myisam_sort_buffer_size = 8M 40 thread_cache_size = 16 41 query_cache_size = 16M 42 tmp_table_size = 32M 43 performance_schema_max_table_instances = 1000 44 45 explicit_defaults_for_timestamp = true 46 #skip-networking 47 max_connections = 500 48 max_connect_errors = 100 49 open_files_limit = 65535 50 51 log_bin=mysql-bin 52 binlog_format=mixed 53 server_id = 232 54 expire_logs_days = 10 55 early-plugin-load = "" 56 57 default_storage_engine = InnoDB 58 innodb_file_per_table = 1 59 innodb_buffer_pool_size = 128M 60 innodb_log_file_size = 32M 61 innodb_log_buffer_size = 8M 62 innodb_flush_log_at_trx_commit = 1 63 innodb_lock_wait_timeout = 50 64 65 [mysqldump] 66 quick 67 max_allowed_packet = 16M 68 69 [mysql] 70 no-auto-rehash 71 72 [myisamchk] 73 key_buffer_size = 32M 74 sort_buffer_size = 768K 75 read_buffer = 2M 76 write_buffer = 2M
12.修改mysql密碼
1 #初始化出現報錯: 2 2021-10-16T12:25:04.276507Z 0 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root 3 4 #處理方法: 5 修改密碼: 6 mysqld_safe --skip-grant-tables --user=mysql 執行後會夯住,另開起一個視窗,輸入mysql+回車即可登入Mysql 7 8 mysql>alter user 'root'@'localhost' identified by '123456'; 9 Query OK, 0 rows affected (0.00 sec) 10 flush privileges; 11 mysql> exit;
13.安裝成功 及啟動
1 cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld //複製啟動項 2 [root@localhost mysql]# service mysqld start //啟動mysql 3 /etc/init.d/mysqld start 啟動Mysql 4 netstat -lntup |grep 3306 檢視mysql 是否啟動Do everything well