1. 程式人生 > 資料庫 >編譯安裝Mysql(5.7)

編譯安裝Mysql(5.7)

1 安裝環境

 1)清除以往mysql殘留痕跡(新機不用)

yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
userdel -r mysql
rm -rf /etc/my.conf
rm -rf /var/lib/mysql

 2)下載編譯工具

yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake

2 建立mysql使用者及mysql目錄 並授權

useradd -s /bin/false -M -r mysql
mkdir -p /usr/local/{data,mysql,log}
chown -R mysql.mysql /usr/local/mysql

3 上傳軟體包並解壓(可從官網上或各大開源軟體映象站直接下載)

#下為清華大學開源映象站的下載連結
#https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-boost-5.7.30.tar.gz
tar xvf mysql-boost-5.7.30.tar.gz

4 預編譯 編譯 安裝

#需先進入解壓後的目錄操作 可用 -C 指定解壓目錄
cd mysql-5.7.30/

#這裡列出一些常用的預編譯選項 可選擇寫入
#詳細的預編譯選項參見官網 
#https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

cmake . -DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \      #安裝目錄
-DSYSCONFDIR=/etc \                   #配置檔案存放(預設可以不安裝配置檔案)
-DMYSQL_DATADIR=/usr/local/mysql/data \        #資料目錄(含錯誤日誌)
-DINSTALL_MANDIR=/usr/share/man \           #幫助文件 -DMYSQL_TCP_PORT=3306 \                 #預設埠 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \          #sock檔案位置 -DDEFAULT_CHARSET=utf8 \                #預設字符集 -DEXTRA_CHARSETS=all \                 #擴充套件的字符集支援所有的 -DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \                   #上下查詢歷史命令 -DWITH_SSL=system \                   #使用私鑰和證書登入 -DWITH_EMBEDDED_SERVER=1 \               #嵌入式資料庫 -DENABLED_LOCAL_SERVER=1 \               #從本地匯入資料 -DWITH_INNOBASE_STORAGE_ENGINE=1           #預設的儲存引擎 支援外來鍵

 出現下圖所示即表示預編譯成功

 然後進行編譯安裝

#預編譯完成後進行編譯安裝 此過程較緩慢 提升伺服器配置可加快進度
make && make install

 出現下圖所示即表示安裝成功 

 一般預編譯不出現問題 編譯安裝也不會出現問題 所以重點在於預編譯 這也是編譯安裝所有服務的難點

 

5 初始化

  初始化後會有系統給定的預設密碼 由12位隨機字元組成 需複製儲存 後續需用這個密碼登陸資料庫

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

6 修改配置檔案(/etc/my.cnf)

#將原有配置檔案全刪除 寫入下列資料
#下列資料路徑需與預編譯安裝時指定的目錄一致
[mysqld]
basedir=/usr/local/mysql       #指定安裝目錄
datadir=/usr/local/mysql/data    #指定資料存放目錄
[client]
socket = /tmp/mysql.sock      #sock檔案存放位置

7 啟動服務(放入後臺執行 不然要佔一個終端)

/usr/local/mysql/bin/mysqld_safe --user=mysql &

8 使用之前儲存的密碼直接登陸資料庫或先修改資料庫密碼

#登入資料庫
/usr/local/mysql/bin/mysql -uroot -p'password'

#修改密碼
/usr/local/mysql/bin/mysqladmin -uroot -p'oldpassword' password 'newpassword'

9 為mysql設定快捷命令

#建立符號連結
ln -s /usr/local/mysql/bin/* /usr/local/sbin/

 10 配置mysql服務管理工具(選做)

#將mysql交給service管理
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

#將mysql交給chkconfig管理的開機啟動中
chkconfig --add mysqld
chkconfig mysqld on