日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

从源编译MySQL

發布時間:2025/7/14 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从源编译MySQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注:本次編譯MySQL-5.7.19使用Linux(CentOS7)系統
在編譯前 yum -y install make gcc-c++ bison-devel (Ubuntu和Debian 使用apt-get 安裝)

make,Linux下非常重要的編譯工具,最主要也是最基本的功能就是通過makefile文件來描述源程序之間的相互關系并自動維護編譯工作。
gcc-c++,C++ 編譯器(gcc,C編譯器)
bison-devel 一個語法分析器生成器

下載MySQL源代碼
https://dev.mysql.com/downloads/mysql/

下載選項:

  • Source Code -> 源代碼
  • Generic Linux (Architecture Independent) -> 通用的Linux(獨立結構)
  • Compressed TAR Archive,Includes Boost Headers -> 選擇帶有Boost頭的壓縮包(MySQL需要Boost C++庫構建)

    wget https://dev.mysql.com/get/Dow...
    tar xzf mysql-boost-5.7.19.tar.gz
    mv mysql-5.7.19 /usr/local/mysql #移動MySQL源碼到 /usr/local 目錄下

  • 從源安裝MySQL,需要安裝CMake
    cmake,一個跨平臺的編譯自動配置工具(作用生成makefile 文件)

    wget https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz tar xzf cmake-3.9.0.tar.gz cd cmake-3.9.0 ./configure --prefix=/usr/local/cmack #根據需要填寫安裝路徑 make && make install

    不想編譯安裝可以直接:yum -y install cmake

    開始安裝MySQL

    cd /usr/local/mysql #使用 cmake 來編譯MySQL(yum安裝的直接 cmake 不用加路徑) /usr/local/cmake/bin/cmake . -DWITH_BOOST=/usr/local/mysql/boost #根據需要調整路徑以匹配您的安裝

    缺少 ncurses-devel 直接 yum -y install ncurses-devel (debian/ubuntu 是 apt-get install libncurses5-dev)

    要防止使用舊的對象文件或配置信息,請在重新運行CMake之前在Unix上的構建方案中運行以下命令 make clean rm -f CMakeCache.txt在次使用 cmake 編譯MySQL /usr/local/cmake/bin/cmake . -DWITH_BOOST=/usr/local/mysql/boost make

    內存不足,在Linux下增加臨時 swap 空間 (ps:因為博主窮,服務器配置不高;不出現此問題就跳過)
    解決方法:http://blog.csdn.net/razertang/article/details/45694567

    make make install #創建 MySQL組和MySQL用戶 groupadd mysql useradd -r -g mysql -s /bin/false mysql # -s /bin/false 禁止使用shell #更改MySQL文件夾權限 chown -R mysql:mysql /usr/local/mysql #初始化數據庫并生成初始密碼 /usr/local/mysql/bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up

    記錄生成的初始密碼::a0esd.M=wQF

    #為防止通過MySQL用戶修改MySQL文件,修改用戶為root chown -R root /usr/local/mysql/ #把初始化時生成的 data 目錄用戶 修改成MySQL權限 chown -R mysql data #如果提示沒有data目錄 mkdir data && chown -R mysql:mysql data#啟動 /usr/local/mysql/bin/mysqld_safe --user=mysql &

    /var/log/mariadb/mariadb.log' 不存在

    mkdir /var/log/mariadb && touch /var/log/mariadb/mariadb.log chown -R mysql:mysql /var/log/mariadb/

    啟動失敗,查看日志:cat /var/log/mariadb/mariadb.log

    '/var/run/mariadb/mariadb.pid' 不存在 (ps:錯誤不一定一樣,按照日志來解決問題)

    mkdir /var/run/mariadb && touch /var/run/mariadb/mariadb.pid chown -R mysql:mysql /var/run/mariadb/# Next command is optional cp support-files/mysql.server /etc/init.d/mysql.server#登陸到MySQL /usr/local/mysql/bin/mysql -uroot -p:a0esd.M=wQF

    tmp 文件夾 缺少 mysql.sock

    #軟連接 mysql.sock 到 tmp ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock#登陸到MySQL /usr/local/mysql/bin/mysql -uroot -p:a0esd.M=wQF #修改MySQL初始密碼 set password = password('XXXX');

    本文根據MySQL文檔編寫
    https://dev.mysql.com/doc/refman/5.7/en/source-installation.html
    https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html

    題外話:
    在編譯的過程中,你可能會遇到各種各樣的問題;但是請你不要馬上的去Google上搜索,先靜下心來看日志;相信我,你會有收獲。

    總結

    以上是生活随笔為你收集整理的从源编译MySQL的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。