1. 程式人生 > >阿里雲CentOS 7.1編譯安裝MySql5.6.24

阿里雲CentOS 7.1編譯安裝MySql5.6.24

這篇文章主要是記錄原始碼編譯安裝MySql5.6.24的過程。

鑑於官方MySql5.6.24相對是一個比較穩定的版本,所以博主之前也在自己的另一臺CentOS7.1主機上安裝了一遍。不過最後還是圖新鮮,選擇了MySQL5.7.7rc版本。下面是具體的安裝過程,由於和MySQL5.7.7rc的編譯安裝過程很類似,所以這裡儘可能精簡文字:

1 建立mysql使用者和使用者組,並下載MySql5.6.24版本

首先建立一個名為mysql且沒有登入許可權的使用者和一個名為mysql的使用者組,然後去mysql官網下載MySql5.6.24版本。

#######新建mysql使用者和mysql組
[
[email protected]
~]# groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql ######從官網或者部落格備份地址下載MySql5.6.24版本 [[email protected] ~]# wget -c http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz [[email protected] ~]# wget -c http://git.typecodes.com/libs/mysql/mysql-5.6.24.tar.gz ######開始解壓MySql5.6.24 [
[email protected]
~]# tar -zxvf mysql-5.6.24.tar.gz && cd mysql-5.6.24/ ######下載gmock:google的c++mock框架,從mysql 5.6開始支援 [[email protected] mysql-5.6.24]# wget -c https://googlemock.googlecode.com/files/gmock-1.6.0.zip [[email protected] mysql-5.6.24]# wget -c http://git.typecodes.com/libs/ccpp/gmock-1.6.0.zip ######將其解壓到MySQL5.6.24的source_downloads目錄下 [
[email protected]
mysql-5.6.24]# unzip gmock-1.6.0.zip -d source_downloads
2 下載編譯MySql5.6.24時需要的工具(安裝過程同編譯安裝MySQL5.7.7rc完全一致)

和編譯安裝MySQL5.7.7rc版本一樣,這裡也需要安裝CMake、Ncurses、bison和Boost庫。

#######CMake編譯工具
[[email protected] ~]# wget -c http://git.typecodes.com/libs/ccpp/cmake-3.2.1.tar.gz
[[email protected] ~]# tar -zxf cmake-3.2.1.tar.gz && cd cmake-3.2.1
[[email protected] cmake-3.2.1]# ./configure 
[[email protected] cmake-3.2.1]# make && make install  [預設安裝路徑是/usr/local/bin]
[[email protected] cmake-3.2.1]# cmake --version       [檢視cmake版本]
cmake version 3.2.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).
[[email protected] cmake-3.2.1]# cd ~ && rm -rf cmake-3.2.1*

#######Ncurses:提供功能鍵定義(快捷鍵),螢幕繪製以及基於文字終端的圖形互動功能的動態庫。
[[email protected] ~]# yum -y install ncurses-devel

#######bison:GNU分析器生成器
[[email protected] ~]# wget -c http://git.typecodes.com/libs/ccpp/bison-3.0.tar.gz
[[email protected] ~]# tar -zxf bison-3.0.tar.gz && cd bison-3.0/ && ./configure
[[email protected] bison-3.0]# make && make install
[[email protected] bison-3.0]# cd ~ && rm -rf bison-3.0*

#######Boost庫:一個開源可移植的C++庫,是C++標準化程序的開發引擎之一
[[email protected] ~]# wget -c http://git.typecodes.com/libs/ccpp/boost_1_57_0.tar.bz2
[[email protected] ~]# tar -jxf boost_1_57_0.tar.bz2 && cd boost_1_57_0/
[[email protected] boost_1_57_0]# ./bootstrap.sh
[[email protected] boost_1_57_0]# ./b2 stage threading=multi link=shared
[[email protected] boost_1_57_0]# ./b2 install threading=multi link=shared
[[email protected] boost_1_57_0]# cd ~ && rm -rf boost_1_57_0*
3 解決MySQL5.6.24的bug

在MySQL5.6.24原始碼包中的/cmd-line-utils/libedit/terminal.c檔案有bug,會導致在安裝完後,使用命令報Segmentation fault的錯誤。

MySQL5.6.24的bug

谷歌到這篇文章解決:登出第869行的 //char buf[TC_BUFSIZE];並將第879行的area = buf;改成area = NULL;

MySQL5.6.24的bug

4 開始進行MySql5.6.24編譯前的配置

這裡和編譯安裝MySQL5.7.7rc時的操作也完全相同:

######使用cmake命令,開始編譯MySql5.6.24
[[email protected] mysql-5.6.24]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \              [MySQL安裝的根目錄]
-DMYSQL_DATADIR=/mydata/mysql/data  \                   [MySQL資料庫檔案存放目錄]
-DSYSCONFDIR=/etc \                                     [MySQL配置檔案所在目錄]
-DMYSQL_USER=mysql \                                    [MySQL使用者名稱]      
-DWITH_MYISAM_STORAGE_ENGINE=1 \                        [MySQL的資料庫引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                      [MySQL的資料庫引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                       [MySQL的資料庫引擎]
-DWITH_MEMORY_STORAGE_ENGINE=1 \                        [MySQL的資料庫引擎]
-DWITH_READLINE=1 \                                     [MySQL的readline library]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \           [MySQL的通訊目錄]
-DMYSQL_TCP_PORT=3306 \                                 [MySQL的監聽埠]
-DENABLED_LOCAL_INFILE=1 \                              [啟用載入本地資料]
-DENABLE_DOWNLOADS=1 \                                  [編譯時允許自主下載相關檔案]
-DWITH_PARTITION_STORAGE_ENGINE=1  \
-DEXTRA_CHARSETS=all \                                  [使MySQL支援所有的擴充套件字元]
-DDEFAULT_CHARSET=utf8 \                                [設定預設字符集為utf8]
-DDEFAULT_COLLATION=utf8_general_ci \                   [設定預設字元校對]
-DWITH_DEBUG=0 \                                        [禁用除錯模式]
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \                             [通訊時支援ssl協議]
-DWITH_ZLIB:STRING=bundled                              [允許使用zlib library]

執行上面的配置命令的結果如下圖所示:

MySQL5.7.7rc編譯前的配置

5 開始編譯和安裝MySQL5.6.24

相對編譯MySQL5.7.7rc來說,編譯MySQL5.6.24對主機資源的消耗低很多,而且耗時也少(約1小時)。

[[email protected] mysql-5.6.24]# make && make install

下圖展示的是make命令執行完畢的情況:

編譯MySQL5.6.24的make命令執行結果

編譯MySQL5.6.24的make命令執行結果

make命令執行完後,開始執行make install命令:

編譯MySQL5.6.24的make命令執行結果

編譯MySQL5.6.24的make命令執行結果

最後,激動人心的時刻,看到下圖就代表已經編譯安裝好了MySQL5.6.24!

安裝MySQL5.6.24的make install命令執行結果

6 檢視編譯成功後的MySQL安裝目錄

同MySQL5.7.7rc一樣,需要檢視MySQL5.6.24的/usr/local/mysql/lib/目錄下是否存在下面的庫檔案。

[[email protected] lib]# ls
libmysqlclient.a    libmysqlclient_r.so     libmysqlclient_r.so.18.1.0  libmysqlclient.so.18      libmysqld.a         plugin
libmysqlclient_r.a  libmysqlclient_r.so.18  libmysqlclient.so           libmysqlclient.so.18.1.0  libmysqlservices.a
7 開始設定MySQL的配置檔案my.cnf

同MySQL5.7.7rc的配置檔案my.cnf一樣,直接把《CentOS系統MySQL的配置檔案my.cnf》文中整理的my.cnf檔案覆蓋伺服器上的/etc/my.cnf即可。

[[email protected] mysql]# mv /etc/my.cnf /etc/my.cnfbak
[[email protected] mysql]# mv  ~/my.cnf  /etc/my.cnf
8 新增mysql的環境變數

同MySQL5.7.7rc,新增MySQL的bin目錄到Linux環境變數中:

[[email protected] mysql]# echo -e '\n\nexport PATH=/usr/local/mysql/bin:$PATH\n' >> /etc/profile && source /etc/profile
9 建立MySQL資料庫檔案的存放路徑以及相關安全配置

同MySQL5.7.7rc,建立/mydata/mysql/data作為MySQL的資料庫目錄。

[[email protected] ~]# mkdir -p /mydata/mysql/data && chown -R root:mysql /usr/local/mysql
[[email protected] mysql]# chown -R mysql:mysql /mydata/mysql/data
[[email protected] mysql]# chmod -R go-rwx /mydata/mysql/data
10 初始化MySQL自身的資料庫

同MySQL5.7.7rc,初始化MySQL自身的資料庫。

######引數user表示使用者,basedir表示mysql的安裝路徑,datadir表示資料庫檔案存放路徑
[[email protected] bin]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/mysql/data

執行完後,可以通過[[email protected] mysql]# ls -lrt /mydata/mysql/data/命令檢視是否生成了MySQL自身的資料庫檔案。

初始化MySQL自身的資料庫

11 建立MySQL日誌存放目錄以及設定開機啟動

同MySQL5.7.7rc,將啟動MySQL服務程序的指令碼新增到開機啟動項中。

[[email protected] ~]# mkdir -p /var/run/mysql && mkdir -p /var/log/mysql
[[email protected] ~]# chown -R mysql:mysql /var/log/mysql && chown -R mysql:mysql /var/run/mysql
######配置開機自啟動
[[email protected] mysql]# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
[[email protected] mysql]# chmod +x /etc/init.d/mysqld     #增加可執行許可權
[[email protected] mysql]# chkconfig --add mysql       #新增到sysV服務
[[email protected] mysql]# chkconfig mysqld on
12 啟動MySQL服務

同MySQL5.7.7rc,啟動MySQL服務程序:

[[email protected] mysql]# mysqld_safe --user=mysql --datadir=/mydata/mysql/data --log-error=/var/log/mysql/error.log &
[1] 10274
[[email protected] mysql]# 150513 21:28:16 mysqld_safe Logging to '/var/log/mysql/error.log'.
150513 21:28:16 mysqld_safe Starting mysqld daemon with databases from /mydata/mysql/data

[[email protected] mysql]# service mysqld start
Starting MySQL.[  OK  ]                 [啟動成功]
[[email protected] mysql]#

然後使用下面這命令ps -ef | grep mysqlnetstat -tunpl | grep 3306檢視MySQL服務程序和埠監聽情況:

檢視MySQL服務程序和埠監聽情況

13 初始化MySQL資料庫的root使用者密碼

MySQL5.6.24和MySQL5.7.7rc的使用者密碼策略是不同的,MySQL5.6.24沒有提示使用者密碼的強度等級,所以也就不會去校驗。因此,我們只需要一路輸入y和自己喜歡的密碼即可。

MySQL5.6.24設定密碼

14 將MySQL資料庫的動態連結庫共享至系統連結庫

同MySQL5.7.7rc,將MySQL5.6.24的lib庫檔案新增到當前Linux主機連結庫/etc/ld.so.conf.d/下,方便其它程式安裝呼叫。

[[email protected] lib]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[[email protected] lib]# ldconfig          [使生效]
[[email protected] lib]# ldconfig -v |grep mysql       [檢視效果]
ldconfig: Can't stat /libx32: No such file or directory
ldconfig: Path `/usr/lib' given more than once
ldconfig: Path `/usr/lib64' given more than once
ldconfig: Can't stat /usr/libx32: No such file or directory
/usr/lib64/mysql:
    libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
    libmysqlclient.so.18 -> libmysqlclient_r.so.18.1.0
/usr/local/mysql/lib:
    libmysqlclient.so.18 -> libmysqlclient_r.so.18.1.0
15 建立其它MySQL資料庫使用者

操作同MySQL5.7.7rc,這裡就不再演示了。

相關推薦

阿里CentOS 7.1編譯安裝MySql5.6.24

這篇文章主要是記錄原始碼編譯安裝MySql5.6.24的過程。 鑑於官方MySql5.6.24相對是一個比較穩定的版本,所以博主之前也在自己的另一臺CentOS7.1主機上安裝了一遍。不過最後還是圖新鮮,選擇了MySQL5.7.7rc版本。下面是具體的安裝過程,由於和M

阿里CentOS 7.4下安裝WSTMart開源商城系統

商淘軟體B2B2C(WSTMart)開源商城系統在linux下的安裝,阿里雲Cent 7.4版本安裝命令教程: WSTMart 安裝apache 安裝服務 yum install httpd

Linux/Centos 源碼編譯安裝Mysql5.6

Mysql Linux Centos 系統 運維 mysql安裝軟件版本 MySQL-5.6.32 (文中涉及到的軟件包加最下方微信免費獲取)上傳mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz到APP服務器目錄:/usr/local/sr

CentOS 7.5 編譯安裝 Nginx 1.15.5

關於Nginx Nginx是一個高效能、輕量級的HTTP和反向代理服務及電子郵件IMAP/POP3/SMTP代理服務 因它的穩定性、豐富的功能集、示例配置檔案和低系統資源消耗而聞名。 特點:記憶體佔用少,併發能力強 事實上Nginx的併發能力確實在同類型的

AWS CentOS 7.5 編譯安裝nginx 1.14.2穩定版

安裝所需環境 Nginx 是 C語言 開發,本文使用 AWS CentOS 7.5 作為安裝環境。 一. gcc 安裝 安裝 nginx 原始碼進行編譯,編譯依賴 gcc 環境,需要安裝gcc: yum install gcc-c++ 二. PCRE pcre-devel 安裝 PC

阿里CentOS7 64位下安裝MySQL5.7

二、阿里雲沒有提供手動安裝mysql的技術文件,現將自己的安裝過程整理如下,採用的是YUM安裝方式: 安裝mysql源 shell> yum localinstall mysql57-community-release-el7-11.noarch.r

阿里Centos 7 安裝mysql伺服器

  1. 下載mysql源安裝包: wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 2. 安裝mysql源: yum localinstall mysql57-communit

阿里centos 7 安裝 mysql 8 navicat連線不上問題解決

伺服器上安裝的MySQL服務,一般都會用Navicat做日常資料庫的使用工具。今天在阿里雲上安裝MySQL8,但是Navicat始終連線不上,試了網上很多方法都沒用,以下記錄一些關鍵的地方。1.阿里雲要新增安全規則即使伺服器防火牆已經開放了3306埠,或者關掉了防火牆,還需要

阿里(centOS 7)安裝apache

安裝 apache: # yum install httpd httpd-devel  # service httpd start  防火牆中開啟 80 埠:  # firewall-cmd --zone=public --add-port=80/tcp --perman

阿里Centos 7.2 安裝apache踩的坑

./configure --prefix=/usr/local/apache2 Centos安裝 Apache2.4提示 APR not found的解決辦法: 1.下載所需軟體包: 具體步驟如下: 1、:解決apr not foun

Nginx(一)安裝阿里 CentOS 7 yum安裝

目錄 新增Nginx到YUM源 新增CentOS 7 Nginx yum資源庫,開啟終端,使用以下命令: # sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx

阿里Centos 7.2 安裝Svn

這兩天因為專案需要在Linux系統下安裝SVN,由於很少使用Centos環境,直接百度貼程式碼,但安裝過程中還是遇到不少問題,記錄下來。1.安裝subversion yum install subversion -y使用 -y 命令安裝過程中無需任何操作,直接安裝完成2.檢視

MySQL 8.0安裝阿里Centos 7

tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar 3、移動到系統的本地軟體目錄 mv mysql-8.0.13-linux-glibc2.12-x86

阿里 centos 7 安裝 svn 伺服器

一、SVN 服務端搭建 1、安裝 svn sudo yum install subversion 2 檢視版本 svnserve --version 輸出: svnserve, version 1.7.14 (r1542130) c

阿里CentOS 7.3安裝Redis3.2.6詳細步驟

############  準備  ############### 從Redis官網下載Linux redis3.2.6版本,我下載的redis-3.2.6.tar.gz(目前最新穩定版),下載到/usr/local/src目錄,如果沒有就mkdir建立一個. 下載連結:https:/

Centos 7.0 編譯安裝LAMP(Linxu+apache+mysql+php)之源碼安裝Apache (一)

mysql apache mysql編譯安裝 apache編譯安裝 lamp編譯安裝 Apache 簡介: Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠

Centos 7.0 編譯安裝LAMP(Linxu+apache+mysql+php)之源碼安裝Mysql (二)

php mysql apache mysql 簡介: MySQL是一個關系型數據庫管理系統,關系數據庫將數據保存在不同的表中,這樣就增加了速度並提高了靈活性。目前其屬於 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RD

Centos 7.0 編譯安裝LAMP(Linxu+apache+mysql+php)之源碼安裝php (三)

lamp apache 源碼編譯lamp php mysql centos 7 編譯安裝lamp PHP簡介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特

阿里CentOS 7.3 裸機搭建 Apache、MySql、PHP、Node環境、並繫結域名

阿里雲CentOS 7.3 裸機搭建 Apache、MySql、PHP、Node境、並繫結域名 最近一直想在阿里雲申請一個伺服器,可以在上面跑一些服務,輸入域名訪問,那種感覺肯定很不一樣。所以就花學生價買了一年,還是挺划算的。 域名備案花了挺長時間,又上傳照片又打電話核實的挺麻煩的,不過

CentOS 7.x編譯安裝Nginx ,設為開機啟動項

1、安裝 1、安裝nginx的依賴 yum -y install openssl openssl-devel yum -y install pcre-devel 2、下載nginx-1.10.3.tar.gz原始碼並解壓至/root/   http://nginx.org/