編譯安裝mysql

lm_y發表於2017-09-01

一、準備工作

1.1 解除安裝系統自帶mysql

檢視系統是否自帶MySQL, 如果有就解除安裝了, 解除安裝方式有兩種yum, rpm, 這裡通過yum解除安裝

rpm -qa | grep mysql    //檢視系統自帶mysql
yum -y remove mysql-*   //解除安裝mysql
rpm -e --nodeps mysql-5.1.73-3.el6_5.x86_64 //解除安裝mysql
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

1.2 解除安裝系統自帶boost,並安裝boost_1_59_0

mysql 5.7 依賴於boost_1_59_0或更高版本, 檢視系統是否自帶boost, 如果有就解除安裝了

rpm -qa | grep boost    //檢視系統自帶boost
yum -y remove boost-*   //解除安裝boost
rpm -e --nodeps boost-filesystem-1.41.0-11.el6_1.2.x86_64 //解除安裝boost
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

安裝 boost_1_59_0 , cmake 編譯時加上 -DWITH_BOOST=/usr/local/boost

tar -zxvf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
  • 1
  • 2
  • 1
  • 2

1.3 安裝依賴包

yum install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl
  • 1
  • 1

1.4 安裝cmake

tar -zxvf cmake-3.4.1.tar.gz
./configure
make && make install
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

1.5 下載 mysql 原始碼包 mysql-5.7.10.tar.gz

通過wget下載

wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz
  • 1
  • 1

windows中下載需要的原始碼包,通過檔案傳輸工具rzsz上傳

yum install lrzsz //安裝rzsz
rz //上傳
  • 1
  • 2
  • 1
  • 2

1.6 建立使用者組mysql和使用者mysql

檢查系統是否已經有mysql使用者,如果沒有則建立

cat /etc/group | grep mysql     //檢視是否存在mysql使用者組
cat /etc/passwd | grep mysql    //檢視是否存在mysql使用者
groupadd mysql                  //建立使用者組
useradd -r -g mysql mysql       //建立使用者
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

1.7 建立mysql目錄和資料庫目錄,並賦予使用者mysql許可權

建立mysql目錄和資料庫目錄

mkdir /usr/local/mysql          //建立mysql目錄
mkdir /usr/local/mysql/data     //建立資料庫目錄
mkdir /usr/local/mysql/log      //建立日誌檔案目錄
chown -R mysql:mysql /usr/local/mysql   //賦予許可權
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

二、編譯、安裝、配置mysql

2.1 編譯、安裝mysql

編譯時帶上一些引數如安裝根目錄、資料庫目錄、編碼、埠號、預設儲存引擎等
編譯的時候記得帶上 -DWITH_BOOST=/usr/local/boost

tar -zxvf mysql-5.7.10.tar.gz
cd mysql-5.7.10
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DENABLE_DOWNLOADS=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost

make && make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

配置選項參考地址, [http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html][1]

2.2 編譯出錯, 重新編譯前要刪除編譯失敗的檔案

重新編譯時,需要清除舊的物件檔案和快取資訊

make clean
rm -f CMakeCache.txt
  • 1
  • 2
  • 1
  • 2

2.3 配置my.cnf

my.cnf檔案可以根據自己的需求選擇合適的配置, 網上有很多, 可以參考, 這裡不在詳細說明。記得把 my.cnf 放到 /etc 目錄下

mv my.cnf /etc/my.cnf
  • 1
  • 1

2.4 初始化系統資料表

自 mysql5.7 開始,初始化系統表不再使用 mysql_install_db 工具, 而是使用 mysqld --initialize-insecure --user=mysql , 其中 --initialize 表示預設生成一個安全的密碼, --initialize-insecure 表示不生成密碼, 密碼為空

cd /usr/local/mysql
bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  • 1
  • 2
  • 1
  • 2

2.5 新增環境變數, 註冊成系統服務

新增環境變數, 在 PATH 中新增引數 :/usr/local/mysql/bin:/usr/local/mysql/lib

vim /root/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
source /root/.bash_profile
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

註冊成系統服務

cp support-files/mysql.server /etc/init.d/mysqld
chkconfig mysqld on
service mysqld start/stop/restart/status
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

首次登陸設定密碼

  • 直接使用 mysqladmin 設定密碼
mysqladmin -uroot -p password 123456    //登入時候
  • 1
  • 1
  • 或者在使用空密碼登入mysql後,在mysql客戶端執行下面修改密碼命令
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');   //登入之後
  • 1
  • 1

檢視程式

netstat -lntp | grep 3306
pkill mysqld

相關文章