mysql 編譯安裝


                mysql 編譯安裝


1、創建mysql帳號

[root@localhost ~]# useradd -s /sbin/nologin -M mysql


2、獲取安裝包

http://mirrors.sohu.com/mysql/

選擇自己需要的版本(注意和二進制軟件包名字的差異)

格式包名
mysql源碼mysql-5.7.18.tar.gz
mysql二進制mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

3、編譯安裝

(1)下載安裝包

[root@localhost ~]# mkdir /opt/soft/

[root@localhost ~]# cd /opt/soft/

[root@localhost soft]# wget -q http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18.tar.gz

(2)解壓、配置

解壓安裝包

[root@localhost soft]# tar zxf mysql-5.7.18.tar.gz


建立目錄

[root@localhost soft]# mkdir /opt/mysql57/

[root@localhost soft]# mkdir /opt/mysql57/data


MySQL 5.5版本以後,使用CMake編譯工具

安裝組件
[root@localhost soft]# yum -y install cmake make gcc gcc-c++ autoconf automake ncurses-devel libaio-devel bison-devel openssl-devel zlib-devel readline-devel 

編譯配置:

可參考官方文檔https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

-DCMAKE_INSTALL_PREFIX指定mysql安裝文件目錄
-DMYSQL_DATADIR指定mysql數據文件目錄
-DSYSCONFDIR指定mysql配置文件目錄
-DMYSQL_UNIX_ADDR指定mysql.sock路徑
-DMYSQL_TCP_PORT指定mysql端口
-DDEFAULT_CHARSET指定默認字符集
-DDEFAULT_COLLATION指定默認排序規則(utf8_general_ci快速)
-DENABLED_LOCAL_INFILE從本地導入數據
-DWITH_INNOBASE_STORAGE_ENGINE安裝innodb存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE安裝archive存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE安裝blackhole存儲引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE不安裝example存儲引擎
-DWITHOUT_FEDERATED_STORAGE_ENGINE不安裝federated存儲引擎
-DWITHOUT_PARTITION_STORAGE_ENGINE不安裝partition存儲引擎
-DWITH_SSL啓用ssl庫支持
-DWITH_ZLIB啓用zlib庫支持
-DWITH_READLINE啓用readline庫支持
-DWITH_LIBWRAP關閉libwrap庫支持
-DEXTRA_CHARSETS安裝所有字符集
-DDOWNLOAD_BOOSTMySQL5.7.5後Boost庫是必需

如果要重新配置要執行以下命令:

make clean 

rm CMakeCache.txt 


cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql57 \

-DMYSQL_DATADIR=/opt/mysql57/data \

-DSYSCONFDIR=/etc \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITHOUT_FEDERATED_STORAGE_ENGINE \

-DWITHOUT_PARTITION_STORAGE_ENGINE \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_READLINE=1 \

-DWITH_LIBWRAP=0 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/usr/local/boost


(3)編譯安裝

[root@localhost mysql-5.7.18]# make -j `grep processor /proc/cpuinfo | wc -l`

[root@localhost mysql-5.7.18]# make install

[root@localhost ~]# ls /opt/mysql57/

bin  COPYING  docs  include  lib  man  mysql-test  README  share  support-files

安裝成功!


(4)建立配置文件

注意事項:

  1、MySQL5.5數據庫默認爲用戶提供了多個配置文件模板,但是MySQL5.5之後的support-files目錄下已經沒有配置文件模板了

 2、在CentOS6.6版操作系統最小化安裝完成後,在/etc目錄下會存在一個my.cnf,需要將此文件更名爲其他的名字,如:/etc/my.cnf.bak,否則,該文件會干擾源碼安裝的MySQL的正確配置,造成無法啓動。


[root@localhost ~]# mv /etc/my.cnf /etc/my.cnf.bak

#在啓動MySQL服務時,會按照一定的順序搜索my.cnf,先在/etc目錄下找,找不到則會搜索"$basedir/my.cnf"

[root@localhost ~]# vi /etc/my.cnf

[client]

port=3306

socket=/tmp/mysql.sock


[mysqld]

user=mysql

port=3306

socket=/tmp/mysql.sock

character-set-server=utf8

collation-server=utf8_general_ci

basedir=/opt/mysql57/

datadir=/opt/mysql57/data/

tmpdir=/opt/mysql57/data/

pid-file=/opt/mysql57/data/mysql.pid

log_error=/opt/mysql57/data/mysql.err


server-id = 137

log_bin = /opt/mysql57/data/binlog


slow_query_log = ON

long_query_time = 2

slow_query_log_file = /opt/mysql57/data/query_log

log_queries_not_using_indexes = ON

以上只是簡單示例


(5)授權mysql用戶

[root@localhost ~]# chown -R mysql.mysql /opt/mysql57/


(6)初始化數據庫

[root@localhost ~]# /opt/mysql57/bin/mysqld --initialize --basedir=/opt/mysql57/ --datadir=/opt/mysql57/data/ --user=mysql


[root@localhost data]# tail -f mysql.err 

2017-06-29T13:21:35.392220Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-06-29T13:21:36.231983Z 0 [Warning] InnoDB: New log files created, LSN=45790

2017-06-29T13:21:36.364585Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2017-06-29T13:21:36.434567Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e09a3e70-5ccd-11e7-9dd2-c81f66c50de9.

2017-06-29T13:21:36.435687Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2017-06-29T13:21:36.437654Z 1 [Note] A temporary password is generated for root@localhost: Dh<pE9py7igK

初始化之後的密碼文件也保存在這裏一份

[root@localhost mysql57]# cat /root/.mysql_secret

# Password set for user 'root@localhost' at 2017-06-29 19:21:38 

Dh<pE9py7igK

(7) 建立啓動腳本

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

[root@localhost mysql57]# chmod 755 /etc/init.d/mysqld

[root@localhost mysql57]# vi /etc/init.d/mysqld

basedir=/opt/mysql57/

datadir=/opt/mysql57/data/

mysqld_pid_file_path=/opt/mysql57/data/


[root@localhost data]# /etc/init.d/mysqld  start

Starting MySQL. SUCCESS! 


mysql服務開機啓動

[root@localhost mysql]# chkconfig --add mysqld

[root@localhost mysql]# chkconfig mysqld on


設置環境變量

[root@localhost data]# echo 'export PATH=$PATH:/opt/mysql57/bin' >> /etc/profile

[root@localhost data]# source /etc/profile

[root@localhost ~]# echo $PATH     

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/mysql57/bin:/root/bin

[root@localhost ~]# mysql -uroot  -p

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.


mysql> set password=password('123456');

Query OK, 0 rows affected, 1 warning (0.01 sec)


mysql> alter user 'root'@'localhost' password expire never;

Query OK, 0 rows affected (0.01 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


另一種:

grant all privileges on *.* to root@'%' identified by "123456" with grant option;


注意點:

安裝的依賴庫的說明

1> cmake

MySQL5.5後使用cmake跨平臺工具預編譯源碼,用於設置mysql的編譯參數。如:安裝目錄、數據存放目錄、字符編碼、排序規則等。安裝最新版本即可。

2> make

mysql源代碼是由C和C++語言編寫,在linux下使用make對源碼進行編譯和構建,要求必須安裝make 3.75或以上版本

3> gcc4.4.6

GCC是Linux下的C語言編譯工具,mysql源碼編譯完全由C和C++編寫,要求必須安裝GCC4.4.6或以上版本

4> Boost1.59.0

mysql源碼中用到了C++的Boost庫,要求必須安裝boost1.59.0或以上版本

5> bison2.1

Linux下C/C++語法分析器

6> ncurses

字符終端處理庫


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章