溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

源碼編譯安裝MySQL 5.7.9的過(guò)程

發(fā)布時(shí)間:2021-09-16 14:33:00 來(lái)源:億速云 閱讀:114 作者:chen 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章主要介紹“源碼編譯安裝MySQL 5.7.9的過(guò)程”,在日常操作中,相信很多人在源碼編譯安裝MySQL 5.7.9的過(guò)程問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”源碼編譯安裝MySQL 5.7.9的過(guò)程”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

安裝CentOS 6.3

配置yum:
[root@hank-yoon ~]# cd /etc/yum.repos.d/


[root@hank-yoon yum.repos.d]# mkdir a


[root@hank-yoon yum.repos.d]# ls
a  CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo


[root@hank-yoon yum.repos.d]# mv  CentOS-Base.repo  CentOS-Debuginfo.repo CentOS-Vault.repo a


[root@hank-yoon yum.repos.d]# ls
a  CentOS-Media.repo


[root@hank-yoon yum.repos.d]# vi CentOS-Media.repo 
# CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
#  CentOS-6.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c6-media [command]
#
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c6-media [command]


[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
#        file:///media/cdrom/
#        file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


安裝依賴的包:
[root@hank-yoon yum.repos.d]# yum install -y ncurses-devel glibc gcc gcc-c++ libstdc++*  libtool cmake lrzsz libaio-devel


上傳源碼安裝包mysql-5.7.9.tar.gz和cmake-2.8.3.tar.gz:
[root@hank-yoon yum.repos.d]# cd /export/servers/


[root@hank-yoon servers]# ls
cmake-2.8.3.tar.gz  mysql-5.7.9.tar.gz


[root@hank-yoon servers]# tar -xvf cmake-2.8.3.tar.gz


[root@hank-yoon servers]# tar -xvf mysql-5.7.9.tar.gz


[root@hank-yoon servers]# ls
cmake-2.8.3  cmake-2.8.3.tar.gz  mysql-5.7.9  mysql-5.7.9.tar.gz


[root@hank-yoon servers]# cd cmake-2.8.3


[root@hank-yoon cmake-2.8.3]# ls
bootstrap         CMakeCPack.cmake            CMakeLogo.gif             Copyright.txt         DartConfig.cmake   Example     Templates
ChangeLog.manual  CMakeCPackOptions.cmake.in  cmake_uninstall.cmake.in  CTestConfig.cmake     DartLocal.conf.in  Modules     Tests
ChangeLog.txt     CMakeGraphVizOptions.cmake  CompileFlags.cmake        CTestCustom.cmake.in  Docs               Readme.txt  Utilities
cmake.1           CMakeLists.txt              configure                 CTestCustom.ctest.in  doxygen.config     Source


[root@hank-yoon cmake-2.8.3]# ./configure 


[root@hank-yoon cmake-2.8.3]# make && make install


[root@hank-yoon mysql]# groupadd mysql


[root@hank-yoon mysql]# useradd -r -g mysql mysql


[root@hank-yoon export]# chown -R mysql.mysql /export/


[root@hank-yoon export]# mkdir -p data/mysql/data log tmp log dumps


編譯MySQL安裝包報(bào)錯(cuò):
CMake Error at cmake/boost.cmake:76 (MESSAGE):
  You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>


  This CMake script will look for boost in <directory>.  If it is not there,
  it will download and unpack it (in that directory) for you.


  If you are inside a firewall, you may need to use an http proxy:


  export http_proxy=http://example.com:80


Call Stack (most recent call first):
  cmake/boost.cmake:228 (COULD_NOT_FIND_BOOST)
  CMakeLists.txt:435 (INCLUDE)


-- Configuring incomplete, errors occurred!


下載安裝:wget https://cache.yisu.com/upload/information/20200703/141/24801      bootstrap.sh  index.htm   INSTALL  libs             more     status
boost-build.jam  boost.css     bootstrap.bat  doc           index.html  Jamroot  LICENSE_1_0.txt  rst.css  tools


[root@hank-yoon mysql-5.7.9]# pwd
/export/mysql-5.7.9


[root@hank-yoon mysql-5.7.9]# cmake . -DCMAKE_INSTALL_PREFIX=/export/servers/mysql/ -DMYSQL_DATADIR=/export/data/mysql/data -DSYSCONFDIR=/export/servers/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/export/data/mysql/tmp/mysql.sock -DENABLED_LOCAL_INFILE=ON -DENABLED_PROFILING=ON -DWITH_DEBUG=0 -DENABLE_DTRACE=OFF -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/export/boost_1_59_0


-DCMAKE_INSTALL_PREFIX:指定MySQL程序的安裝目錄,默認(rèn)/usr/local/mysql
-DMYSQL_DATADIR:數(shù)據(jù)文件目錄
-DSYSCONFDIR:初始化參數(shù)文件目錄
-DWITH_INNOBASE_STORAGE_ENGINE:指定靜態(tài)編譯到MySQL存儲(chǔ)引擎
-DDEFAULT_CHARSET:默認(rèn)字符集
-DMYSQL_TCP_PORT:默認(rèn)端口


[root@hank-yoon mysql-5.7.9]# make && make install


[root@hank-yoon bin]# pwd
/export/servers/mysql/bin


初始化數(shù)據(jù)庫(kù):
[root@hank-yoon bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/export/servers/mysql --datadir=/export/data/mysql/data


刪除默認(rèn)的my.cnf文件:
[root@hank-yoon bin]# rm -rf /etc/my.cnf

[root@hank-yoon bin]# ./mysqld_safe --defaults-file=/export/servers/mysql/etc/my.cnf &

新建配置文件my.cnf內(nèi)容:
[root@hank-yoon etc]# cat my.cnf
[client]
port            = 3358
socket          = /export/data/mysql/tmp/mysql.sock


[mysqld]
port            = 3358
socket          = /export/data/mysql/tmp/mysql.sock
datadir         = /export/data/mysql/data/


#--- GLOBAL ---#
character-set-server    = utf8
lower_case_table_names  = 1
log-output              = FILE
log-error               = /export/data/mysql/log/error.log

general_log = 0


general_log_file        = /export/data/mysql/log/mysql.log
pid-file                = /export/data/mysql/mysql.pid
slow-query-log
slow_query_log_file     = /export/data/mysql/log/slow.log
tmpdir                  = /export/data/mysql/tmp
long_query_time         = 1

#--------------#

#thread_concurrency      = 16
thread_cache_size       = 512
table_open_cache        = 16384
table_definition_cache  = 16384
sort_buffer_size        = 2M
join_buffer_size        = 2M
read_buffer_size        = 4M
read_rnd_buffer_size    = 4M
key_buffer_size         = 8M
myisam_sort_buffer_size = 8M
tmp_table_size          = 64M
max_heap_table_size     = 64M
open_files_limit        = 65535
query_cache_size       = 0


#add z #################
innodb_undo_directory = /export/data/mysql/undo
innodb_undo_tablespaces = 4
explicit_defaults_for_timestamp = 1


#--- NETWORK ---#
back_log                = 1024
max_allowed_packet      = 16M
interactive_timeout     = 28800
wait_timeout            = 28800
skip-external-locking
max-connections         = 1000
skip-name-resolve
#read_only               = 1
#--- REPL ---#
server-id               = 360360
log-bin                 = mysql-bin
binlog_format           = mixed
expire_logs_days        = 7
relay-log               = relay-log


replicate-ignore-db     = mysql.slave_master_info
replicate-ignore-db     = mysql.slave_relay_log_info
replicate-ignore-db     = mysql.slave_worker_info
replicate-ignore-db     = test
replicate-ignore-db     = information_schema
replicate-ignore-db     = performance_schema


log_slave_updates
skip-slave-start
slave-parallel-workers= 4
sync_master_info = 1
sync_relay_log = 1
sync_relay_log_info = 1
relay_log_info_repository = TABLE
master_info_repository = TABLE
#rpl_semi_sync_master_enabled = 1
#rpl_semi_sync_slave_enabled = 1
#rpl_semi_sync_master_timeout = 1000


#--- INNODB ---#
default-storage-engine          = INNODB
innodb_data_home_dir            = /export/data/mysql/data
innodb_file_per_table
innodb_log_group_home_dir       = /export/data/mysql/data
innodb_log_files_in_group       = 3
innodb_log_file_size            = 512M
innodb_log_buffer_size          = 16M
innodb_flush_log_at_trx_commit  = 1
innodb_lock_wait_timeout        = 120
innodb_flush_method             = O_DIRECT
innodb_max_dirty_pages_pct      = 75


#change z #####
sync_binlog = 1
innodb_buffer_pool_size         = 1G
innodb_data_file_path           = ibdata1:2G;ibdata2:2G:autoextend
innodb_autoextend_increment     = 500
innodb_thread_concurrency       = 32
innodb_open_files               = 65535
innodb_write_io_threads = 20
innodb_read_io_threads = 20
innodb_spin_wait_delay = 10
innodb_flush_neighbors = 1
innodb_use_native_aio = 1
innodb_io_capacity              = 2000
innodb_io_capacity_max          = 6000
relay_log_recovery = 1
#innodb_additional_mem_pool_size = 128M


#change h #####


#innodb_numa_interleave=ON
innodb_lru_scan_depth=512
innodb_checksum_algorithm=crc32
innodb_purge_threads=4


[mysqldump]
quick
max_allowed_packet = 16M


[mysql]
# auto-rehash
# Remove the next comment character if you are not familiar with SQL
# safe-updates
default-character-set=utf8


[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M


[mysqlhotcopy]
interactive-timeout


[root@hank-yoon log]# ps -ef | grep mysql
root     26374 10192  0 16:53 pts/1    00:00:00 /bin/sh ./mysqld_safe --defaults-file=/export/servers/mysql/etc/my.cnf
mysql    27460 26374  0 16:53 pts/1    00:00:04 /export/servers/mysql/bin/mysqld --defaults-file=/export/servers/mysql/etc/my.cnf --basedir=/export/servers/mysql --datadir=/export/data/mysql/data/ --plugin-dir=/export/servers/mysql/lib/plugin --user=mysql --log-error=/export/data/mysql/log/error.log --open-files-limit=65535 --pid-file=/export/data/mysql/mysql.pid --socket=/export/data/mysql/tmp/mysql.sock --port=3358


通過(guò)新配置文件重新初始化,不需要新的密碼:(默認(rèn)生成一個(gè)隨機(jī)密碼(~/.mysql_secret)
[root@hank-yoon bin]# ./mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.9-log Source distribution


Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)


添加變量位置,在任意目錄下執(zhí)行mysql命令:
[root@hank-yoon ~]# vi .bash_profile
PATH=$PATH:$HOME/bin:/export/servers/mysql/bin:/export/servers/mysql/bin


export PATH
export LANG=en_US.UTF-8


[root@hank-yoon ~]# source .bash_profile


[root@hank-yoon ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.9-log Source distribution


Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 

配置通過(guò)service啟動(dòng)mysql命令腳本:
[root@hank-yoon support-files]# pwd
/export/mysql-5.7.9/support-files


[root@hank-yoon support-files]# cp  mysql.server  /etc/init.d/mysqld

[root@hank-yoon init.d]# chmod 755 mysqld

[root@hank-yoon init.d]# service mysqld start
Starting MySQL.. SUCCESS! 

[root@hank-yoon init.d]# service mysqld stop
Shutting down MySQL.. SUCCESS! 

在自啟動(dòng)項(xiàng)中添加mysqld服務(wù)器
[root@hank-yoon ~]# chkconfig --list mysqld
service mysqld supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add mysqld')

[root@hank-yoon ~]# chkconfig --add mysqld

[root@hank-yoon ~]# chkconfig --level 345 mysqld on

到此,關(guān)于“源碼編譯安裝MySQL 5.7.9的過(guò)程”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI