CentOS-AltArch-7(ARM版)下源碼編譯MySQL5.7.31

2020-12-11 酷扯兒

本文轉載自【微信公眾號:WalkingCloud,ID:WalkingCloud2018】,經微信公眾號授權轉載,如需轉載與原文作者聯繫

系統為aarch64位的CentOS AltArch系統

1、準備如下cmake gcc相關源碼包

cmake

https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz

gcc

https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

gcc所需的依賴包

https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2

https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2

https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz

https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2

2、配置CentOS-AltArch-7 華為雲yum源

cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo

sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/CentOS-Base.repo

yum clean all

yum makecache

3、檢查是否有安裝cmake

下載cmake源碼包

下載地址 https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz

編譯cmake

cp /home/cmake-3.9.2.tar.gz /usr/local/src

cd /usr/local/src

tar -zxf cmake-3.9.2.tar.gz

cd cmake-3.9.2

./configure

make && make install

測試cmake是否安裝完成 cmake -version

4、升級gcc

gcc --version

yum install bison* ncurses*

cd /home

tar -zxf gcc-7.3.0.tar.gz

cd gcc-build-7.3.0/

./contrib/download_prerequisites

#下載isl、gmp、mpc、mpfr的依賴包上傳至該目錄下

cat /proc/cpuinfo| grep "processor"| wc -l #查看當前CPU核心數,make編譯時「-j」參數可利用多核CPU加快編譯速度

cd /home/gcc-7.3.0

mkdir gcc-build-7.3.0

cd gcc-build-7.3.0

../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr

make -j1 #只有一核,若有多核,修改為對應核心數加快編譯速度

make install

驗證gcc是否升級成功

cd /usr/lib64

ll |grep libstdc++.so

5、源碼編譯升級MySQL

下載MySQL 5.7.31版本的源碼包

yum install openssl-devel.aarch64

yum install openssl-devel.aarch64

http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

下載補丁文件,並放置到mysql-5.7.x路徑下

補丁下載路徑:https://bugs.mysql.com/file.php?id=28180&bug_id=94699

tar -zxf mysql-boost-5.7.31.tar.gz -C /home

cd /home

cp 0001-Bug-94699-Mysql-deadlock-and-bugcheck-on-aarch64.patch mysql-5.7.31/

cd mysql-5.7.31/

patch -p1 < 0001-Bug-94699-Mysql-deadlock-and-bugcheck-on-aarch64.patch

vim cmake.sh

#添加如下行

-DWITH_BOOST=的路徑為實際boost所在路徑

cmake . -DCMAKE_INSTALL_PREFIX=/data/mysql \

-DMYSQL_DATADIR=/data/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DENABLE_DTRACE=0 \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci \

-DWITH_EMBEDDED_SERVER=1 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/home/mysql-5.7.31/boost/boost_1_59_0/

#若在預編譯時出現依賴包不全的情況,可自行查閱資料安裝依賴包,並重新預編譯。重新預編譯前,需要執行rm -rf CMakeCache.txt

chmod +x cmake.sh

./cmake.sh

make -j1

make install

編譯安裝出現如下報錯時的解決方法

cp /usr/include/sys/prctl.h /home/mysql-5.7.31/include/

vi /home/mysql-5.7.31/sql/mysqld.cc 添加如下圖所示一行

6、編譯完成啟動並配置MySQL

1、創建mysql用戶,MySQL相關目錄並修改目錄屬主

cd /data/

groupadd mysql

useradd -g mysql mysql

chown -R mysql:mysql mysql

cd mysql

mkdir data run log

bin/mysqld --initialize --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql

touch /data/mysql/log/mysql.log

touch /data/mysql/run/mysql.pid

chown -R mysql:mysql log run

2、配置my.cnf配置文件

vi /etc/my.cnf

[mysqld]

datadir=/data/mysql/data/

socket=/data/mysql/mysql.sock

[mysqld_safe]

log-error=/data/mysql/log/mysql.log

pid-file=/data/mysql/run/mysql.pid

3、啟動MySQL服務

cp support-files/mysql.server /etc/init.d/mysql

chkconfig mysql on

service mysql start

4、環境變量配置

vi /etc/profile

export PATH=/data/mysql/bin:$PATH

source /etc/profile

5、登錄MySQL,並修改root用戶密碼以及新建mysql用戶

ln -s /data/mysql/mysql.sock /tmp/mysql.sock

mysql -uroot -p

SET PASSWORD = PASSWORD('MySQL@2019');

UPDATE mysql.user SET authentication_string =PASSWORD('MySQL@2019') WHERE User='mysql';

GRANT ALL PRIVILEGES ON *.* TO mysql@localhost IDENTIFIED BY 'MySQL@2019' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO mysql@"%" IDENTIFIED BY 'MySQL@2019' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'MySQL@2019' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'MySQL@2019' WITH GRANT OPTION;

本文轉載自【微信公眾號:WalkingCloud,ID:WalkingCloud2018】,經微信公眾號授權轉載,如需轉載與原文作者聯繫

相關焦點

  • Centos7 安裝MySQL 5.7
    1 下載並安裝MySQL官方的 Yum Repositorywget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm使用上面的命令就直接下載了安裝用的Yum Repository,,然後就可以直接yum安裝了。
  • 光碟安裝centos7
    講解對象:光碟安裝centos7前言:安裝centos系統有很多種方法,就我所知道的就有5種方法:1 創建虛擬主機的時候安裝centos72 光碟安裝centos73 U盤安裝centos74 雙系統安裝(windows10+centos7)5 網絡安裝今天講解下怎麼光碟安裝centos7
  • 本地下載安裝Centos7
    講解對象:下載安裝Centos71 進入Centos官網 www.centos.org2 選擇get Centos now3 選擇DVD可以當做光碟直接使用刻錄光碟:可以將ISO文件通過軟碟通軟甲刻錄在光碟上                 其他鏡像: everything版(
  • 虛擬機安裝linux(centos7)
    4 點擊下載522 稍後安裝23 選擇系統 linux 版本:centos74G29.3 推薦內存768M30 設置CPU 31:虛擬機只能和本機通信,不能和區域網的其他計算機通信優點:可以上網32.5
  • MySQL 8.0 正式版 8.0.11 發布:比 MySQL 5.7 快 2 倍
    MySQL 8.0 正式版 8.0.11 已發布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,還帶來了大量的改進和更快的性能!注意:從 MySQL 5.7 升級到 MySQL 8.0 僅支持通過使用 in-place 方式進行升級,並且不支持從 MySQL 8.0 降級到 MySQL 5.7(或從某個 MySQL 8.0 版本降級到任意一個更早的 MySQL 8.0 版本)。唯一受支持的替代方案是在升級之前對數據進行備份。
  • 一次搞定 Arm Linux 交叉編譯
    arch:晶片架構,比如 32 位的 Arm 架構對應的 arch 為 arm,64 位的 Arm 架構對應的 arch 為 aarch64。vendor :工具鏈提供商,大部分工具鏈名字裡面都沒有包含這部分。os :編譯出來的可執行文件(目標文件)針對的作業系統,比如 Linux。
  • U盤安裝centos7
    講解對象:U盤安裝centos7前言:安裝centos有很多方法,那麼U盤安裝也是方法之一。 下面我將介紹怎麼通過U盤安裝centos7.1 計算機下載安裝USBwite軟體。Browse4.1 我們選中預先下載的centos7鏡像軟體4.2 點擊refresh按鈕,將會請空所有的U盤中的數據4.3 在target divice中選中目標設備,也就是U盤5
  • CentOS7.X 掛載磁碟 與Mysql 自動備份
    5、檢查是否分區成功(帶有sdb1/vdb1/xvb1說明成功) fdisk -l   7、將分區掛載信息添加到配置文件/etc/fstab中,實現開機/重啟自動掛載 echo "/dev
  • MySQL 5.7基於GTID及多線程主從複製
    Gtid概念從 MySQL 5.6.5 開始新增了一種基於 GTID 的複製方式。通過 GTID保證了每個在主庫上提交的事務在集群中有一個唯一的ID。這種方式強化了資料庫的主備一致性,故障恢復以及容錯能力。在原來基於二進位日誌的複製中,從庫需要告知主庫要從哪個偏移量進行增量同步,如果指定錯誤會造成數據的遺漏,從而造成數據的不一致。
  • 靜態/動態編譯在apache+php+mysql的應用
    我想大家有不少都成功實現apache+php+mysql,網上的文章也有不少,但我發現不少文章都是抄來抄去,並且沒有說明白編譯的方式,有的索性apache1.3的編譯方法原封不動的搬過來套在apache2.0,顯然誤導一些菜鳥!
  • MySQL資料庫Insert語句7種寫法
    在這裡我會7種寫法,下面我就來給大家分別介紹一下。name2 | status |+----+---+----+---+| 1 | name1 | 1001 | 0 || 2 | name1 | 1002 | 1 || 3 | name1 | 1003 | 1 || 4 | name1 | 1004 | 0 || 5
  • Centos7.9安裝Mariadb資料庫
    MariaDB完全兼容mysql。 系統環境:Centos7.9 [root@localhost /]# cat /etc/redhat-release CentOS Linux
  • 常用的三種修改mysql最大連接數的方法
    默認最大連接數是100,一般流量稍微大一點的論壇或網站這個連接數是遠遠不夠的,增加默認MYSQL連接數的方法有兩個方法一:進入MYSQL安裝目錄 打開MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100   修改為 max_connections=1000 服務裡重起MYSQL即可方法二:MySQL的最大連接數默認是100客戶端登錄:mysql
  • 嵌入式ARM-Linux平臺上的編譯、配置和運行使用
    /configure配置編譯環境;執行make進行編譯export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabi-./config shared #一定要加shared,否則編譯出來的是靜態庫。執行make進行編譯,完成後執行make install,編譯好的openssl庫和頭文件等被安裝在目錄/usr/local/ssl下export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabi-.
  • MySQL5.7中如何使用開窗函數
    但是我們目前還有很多人在使用5.7版本。那麼在5.7版本中,如何實現開窗函數的功能呢?`emp`(`id`,`emp_name`,`dept_no`,`emp_salary`,`emp_hire_date`)VALUES(1,'張三','0001',5000,'2017-01-11');INSERTINTO`mysql_db`.
  • PHP 5 到 PHP 7 性能評測(含 JIT 版 PHP 8 對比)
    本文涵蓋了幾個基準測試的結果,從 PHP 5 的第一個版本到 PHP 的試驗性 JIT 分支版本,PHP 5 之前的版本性能本文不作介紹。在寫這篇文章的時候,我們很難確定 PHP 8 之前是否會有另一個主要版本,比如 PHP 7.2。但是可以假設在 PHP 8 發布時,它已經包括當前試驗版 JIT 分支的強大功能。
  • MySQL JDBC客戶端反序列化漏洞
    MySQL Connector/J 各版本所需URL(detectCustomCollations)        6.1) 5.1.29-5.1.40            6.1.1) 簡化版調用關係            6.1.2) mysql-connector-java-5.1.40_d.pcap        6.2) 5.1.19-5.1.28
  • 戳破Centos8停止更新的恐懼!使用 Centos stream 8系統!
    CentOS Stream 8,是一個「中遊」的發行版,位於 Fedora 和 RHEL 之間。原來Centos的發布方式是這樣的:1、首先,開源組織把最新的技術且不穩定的版本放到Fedora系統中,讓大家使用,提交bug。
  • ARM-linux-gcc交叉編譯工具提示arm-linux-gcc can not find
    在Ubuntu12.04下安裝了arm-linux-gcc後,編譯Linux內核發現提示arm-linux-gcc can not find,查找了相關的網絡資料找到了答案
  • 紅帽 與 CentOS 之間的恩怨情仇
    一起來看看紅帽與 CentOS 的「恩怨情仇」……參考連結:https://www.servethehome.com/red-hat-goes-full-ibm-and-says-farewell-to-centos/編譯 | 彎月 責編 | 張文頭圖 | CSDN 下載自紅帽中國官方網站