Linux MySQL 編譯安裝 詳細解析
阿新 • • 發佈:2021-01-05
MySQL 安裝 需要先關閉防火牆selinux
編譯安裝MySQL 5.7
1,清理安裝環境
# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
# userdel -r mysql
# rm -rf /etc/my*
# rm -rf /var/lib/mysql
2,建立MySQL使用者
# useradd -r mysql -M -s /bin/false
3,從官網下載tar包
# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
4,安裝編譯工具
# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
5,建立MySQL目錄
mkdir -p /usr/local/{data,mysql,log}
6,解壓
# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/ 注:如果安裝的MySQL5.7及以上的版本,在編譯安裝之前需要安裝boost,因為高版本mysql需要boots庫的安裝才可以正常執行。 否則會報CMake Error at cmake/boost.cmake:81錯誤 安裝包裡面自帶boost包 Boost庫是為C++語言標準庫提供擴充套件的一些C++程式庫
7,編譯安裝
cd 進解壓的 MySQL 目錄下 # cd /usr/local/mysql-5.7.27/ # 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 \ -DDEFAULT_CHARSET=utf8 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 # echo $? \檢視是否安裝完成 0 提示:boost也可以使用如下指令自動下載,如果不下載bost壓縮包,把下面的這一條新增到配置中第二行 -DDOWNLOAD_BOOST=1/ 引數詳解: -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_INFILE=1 \ 從本地倒入資料,不是備份和恢復。 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 預設的儲存引擎,支援外來鍵
如果沒有出錯就執行 make install
需要很長時間,預估半小時左右
# make && make install
如果安裝出錯,想重新安裝,不用重新解壓,
只需要刪除安裝目錄中的快取檔案 CMakeCache.txt
8,初始化
# cd /usr/local/mysql
# chown -R mysql.mysql .
# ./bin/mysql --initalize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化生成的密碼,一定要記住
9,編輯資料庫的基礎配置檔案
# vim /etc/my.cnf \將裡面的內容備份之後,裡面的內容清除新增以下內容
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
character_set_server = utf8
引數詳解
[client]
port = 3306
\ 預設連線埠
socket = /tmp/mysql.sock
\ 用於本地連線的socket套接字
default-character-set = utf8
\ 編碼
[mysqld]
port = 3306
\ 服務埠號,預設3306
user = mysql
\ mysql啟動使用者
basedir = /usr/local/mysql
\ mysql安裝根目錄
datadir = /usr/local/mysql/data
\ mysql資料檔案所在位置
socket = /tmp/mysql.sock
\ 為MySQL客戶端程式和伺服器之間的本地通訊指定一個套接字檔案
character_set_server = utf8
\ 資料庫預設字符集,主流字符集支援一些特殊表情符號(特殊表情符佔用4個位元組)
**10,啟動MySQL並後臺執行 並檢視埠號3306 檢視MySQL版本 **
# cd /usr/local/mysql
# ./bin/mysql_safe --user=mysql &
# netstat -tnlp | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 54513/mysqld
mysql --version \檢視版本號
mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper
11,登入MySQL資料庫
# /usr/local/mysql/bin/mysql -uroot -p'初始化記住的密碼'
mysql> exit
12,修改密碼
在命令列修改密碼
/usr/local/mysql/bin/mysqladmin -u root -p'初始化時的密碼' password '[email protected]'
在資料庫裡修改密碼
mysql> alter user 'root'@'localhost' identified by '[email protected]';
13,新增環境變數
# vim /etc/profile \新增如下
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
# source /etc/profile \更新變數
# mysql -uroot -p'[email protected]' \登入資料庫
mysql>exit
14,配置mysqld服務的管理工具
# cd /usr/local/mysql/support-files/
# cp mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
先將原來的MySQL服務程序殺掉
# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
# /netstat -lntp
# /etc/init.d/mysqld stop
小節
編譯安裝:
# ls
COPYING README bin include mysql-test support-files
COPYING-test README-test docs lib share
1、bin目錄
用於放置一些可執行檔案,如mysql、mysqld、mysqlbinlog等。
2、include目錄
用於放置一些標頭檔案,如:mysql.h、mysql_ername.h等。
3、lib目錄
用於放置一系列庫檔案。
4、share目錄
用於存放字符集、語言等資訊。
資料庫編譯安裝完成