共計 4947 個字符,預計需要花費 13 分鐘才能閱讀完成。
這篇文章主要介紹 MySQL 源碼安裝的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
操作系統(tǒng):CentOS 6.7
MySQL 版本:5.6.30
· 1. 前期準備
· 2. 系統(tǒng)配置
· 3.CMake 編譯配置
· 4.make make install
· 5. 后期配置和測試
· Reference
1. 前期準備
首先需要 CMake,可以 yum 直接安裝:
yum install cmake
也可以官網 https://cmake.org/ 下載源碼編譯。
我這里選擇了官網下載最新版本 cmake-3.5.2.tar.gz。
# tar -zxvf
cmake-3.5.2.tar.gz cd cmake-3.5.2
# ./configure
部分輸出略。
— Build files have
been written to: /soft/cmake-3.5.2
———————————————
CMake has
bootstrapped. Now run gmake.
# gmake
# make install
2. 系統(tǒng)配置
添加組和用戶:
groupadd mysql
useradd -g mysql
mysql
/etc/security/limits.conf 文件末尾添加:
mysql soft
nproc 2047
mysql hard
nproc 16384
mysql soft
nofile 1024
mysql hard
nofile 65536
3.CMake 編譯配置
解壓源碼包:
tar zxvf
mysql-5.6.30.tar.gz cd mysql-5.6.30
CMake 編譯配置
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8
\
-DDEFAULT_COLLATION=utf8_general_ci
\
-DENABLED_LOCAL_INFILE=ON
\
-DWITH_INNOBASE_STORAGE_ENGINE=1
\
-DWITH_FEDERATED_STORAGE_ENGINE=1
\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
\
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
\
-DWITH_PARTITION_STORAGE_ENGINE=1
\
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
\
-DCOMPILATION_COMMENT= JSS
for mysqltest \
-DWITH_READLINE=ON
\
-DSYSCONFDIR=/data/mysqldata/3306
\
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock
遇到以下錯誤,
— Could NOT find
Curses (missing: CURSES_LIBRARY
CURSES_INCLUDE_PATH)
CMake Error at
cmake/readline.cmake:85 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On
Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is
ncurses-devel.
Call Stack (most
recent call first):
cmake/readline.cmake:128 (FIND_CURSES)
cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:421 (MYSQL_CHECK_EDITLINE)
— Configuring
incomplete, errors occurred!
See also /soft/mysql-5.6.30/CMakeFiles/CMakeOutput.log .
See also
/soft/mysql-5.6.30/CMakeFiles/CMakeError.log .
[root@JY-DB
mysql-5.6.30]#
yum 安裝提示缺失的包:
yum install ncurses-devel
重新刪除配置文件:
rm -rf CMakeCache.txt
然后重新 CMake 工具編譯:
CMake Warning:
Manually-specified variables were not used by the project:
WITH_READLINE
— Build files have
been written to: /soft/mysql-5.6.30
[root@JY-DB mysql-5.6.30]#
4.make
make install
[root@JY-DB mysql-5.6.30]# make make install
大量輸出略。
這個時間會比較長,也跟機器性能有關。
5. 后期配置和測試
5.1 打包 MySQL 二進制版本:
[root@JY-DB data]# tar
zcvf mysql-5.6.30.tar.gz /usr/local/mysql/
5.2 修改 MySQL 軟件所在目錄擁有者:
chown -R mysql.mysql /usr/local/mysql
5.3 修改 mysql 用戶環(huán)境變量:
vi ~/.bash_profile
export
LANG=zh_CN.GB18030
export
PATH=/usr/local/mysql/bin:$PATH
5.4 創(chuàng)建數據庫服務:
# mkdir -p
/data/mysqldata/{3306/{data,tmp,binlog},backup,scripts}
# chown -R
mysql.mysql /data/mysqldata
# su – mysql
$ more
/usr/local/mysql/support-files/my-default.cnf
$ vi
/data/mysqldata/3306/my.cnf
my.cnf 配置文件內容如下:
[client]
port = 3306
socket = /data/mysqldata/3306/mysql.sock
#The MySQL Server
[mysqld]
port = 3306
user = mysql
socket =
/data/mysqldata/3306/mysql.sock
pid-file =
/data/mysqldata/3306/mysql.pid
basedir =
/usr/local/mysql
datadir =
/data/mysqldata/3306/data
tmpdir =
/data/mysqldata/3306/tmp
open_files_limit =
10240
explicit_defaults_for_timestamp
sql_mode =
NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#Buffer
max_allowed_packet =
256M
max_heap_table_size =
256M
net_buffer_length =
8k
sort_buffer_size = 2M
join_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size
= 16M
#Log
log-bin =
/data/mysqldata/3306/binlog/mysql-bin
binlog_cache_size =
32M
max_binlog_cache_size
= 512M
max_binlog_size =
512M
binlog_format = mixed
log_output = FILE
log-error =
../mysql-error.log
slow_query_log = 1
slow_query_log_file =
../slow_query.log
general_log = 0
general_log_file =
../general_query.log
expire-logs-days = 14
#InnoDB
innodb_data_file_path
= ibdata1:2048M:autoextend
innodb_log_file_size
= 256M
innodb_log_files_in_group
= 3
innodb_buffer_pool_size
= 1024M
[mysql]
no-auto-rehash
prompt =
(\u@\h)[\d] \_
default-character-set
= gbk
初始化 MySQL 數據庫:
$ /usr/local/mysql/scripts/mysql_install_db
–datadir=/data/mysqldata/3306/data –basedir=/usr/local/mysql
5.5 啟動數據庫服務:
mysqld_safe –defaults-file=/data/mysqldata/3306/my.cnf
測試連接并查看 MySQL 進程和端口監(jiān)聽狀態(tài):
netstat -lnt | grep 3306
ps -ef | grep
bin/mysql | grep -v grep
實際操作過程如下:
[root@JY-DB ~]# su – mysql
[mysql@JY-DB ~]$
mysql
Welcome to the MySQL
monitor. Commands end with ; or \g.
Your MySQL connection
id is 1
Server version: 5.6.30-log JSS for mysqltest
Copyright (c) 2000,
2016, 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.
(root@localhost)[(none)]
exit
Bye
[mysql@JY-DB ~]$
netstat -lnt |grep 3306
tcp 0
0 :::3306 :::* LISTEN
[mysql@JY-DB
~]$
[mysql@JY-DB ~]$ ps
-ef | grep bin/mysql | grep -v grep
mysql 6736
1753 0 11:24 pts/0 00:00:00 /bin/sh
/usr/local/mysql/bin/mysqld_safe –defaults-file=/data/mysqldata/3306/my.cnf
mysql 7202
6736 0 11:24 pts/0 00:00:00 /usr/local/mysql/bin/mysqld
–defaults-file=/data/mysqldata/3306/my.cnf –basedir=/usr/local/mysql
–datadir=/data/mysqldata/3306/data –plugin-dir=/usr/local/mysql/lib/plugin
–log-error=/data/mysqldata/3306/data/../mysql-error.log
–open-files-limit=10240 –pid-file=/data/mysqldata/3306/mysql.pid
–socket=/data/mysqldata/3306/mysql.sock –port=3306
以上是“MySQL 源碼安裝的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業(yè)資訊頻道!