CentOS7下的MySQL8.0.13版本源碼安裝

前言

對於MySQL的安裝,有很多種方式,yum,rpm和源碼安裝,我個人推薦使用源碼安裝。相對於前兩種安裝方式,源碼安裝就繁瑣多了,需要將MySQL的工具包全部安裝才能對其進行編譯安裝。但源碼包可在所有的linux發行版中進行安裝,並沒有版本限制,而且可自定義配置,把想要的功能配置,不需要的就不配置,而rpm包的都是一鍵裝全,自由度不高。

下載

windows下載直接點擊===>傳送門<===下載MySQL8.0.13版本的源碼包。

linux下載,需要連接網絡和擁有wget工具,沒有安裝一下就行。

wget  https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.13.tar.gz

實施步驟

查看linux版本

[root@linux ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)

我所使用的是CentOS7的最新版本,其實搭建網絡yum源的目的就是爲了更新與mysql相關的依賴包和工具包,較新版本的系統,可以不搭建網絡yum源。

1.卸載系統中原有的mysql,mariadb及其相關依賴包

[root@linux ~]# yum -y remove mysql* mariadb*

2.搭建網絡yum源,用於下載插件

[root@linux ~]# cd /etc/yum.repos.d/
[root@linux yum.repos.d]# rm -rf *
[root@linux yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
[root@linux yum.repos.d]# yum clean all 
[root@linux yum.repos.d]# yum makecache 

3.創建相關用戶,僅用於服務運行

[root@linux ~]# groupadd mysql
[root@linux ~]# useradd -M -s /sbin/nologin -r -g mysql mysql 

4.創建mysql數據庫存放位置並對權限進行控制

[root@linux ~]# mkdir -p /data/mysql/data
[root@linux ~]# mkdir -p /data/mysql/log
[root@linux ~]# chown -R mysql:mysql /data/mysql/

5.安裝mysql的依賴包及工具包

[root@linux ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel openssl-devel

6.將源碼包放入/root目錄下,並解壓,預編譯

[root@linux ~]# tar zxf mysql-boost-8.0.13.tar.gz 
[root@linux ~]# cd mysql-8.0.13/
[root@linux mysql-8.0.13]# cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_DATADIR=/data/mysql/data \
> -DWITH_BOOST=/root/mysql-8.0.13/boost \
> -DSYSCONFDIR=/etc \
> -DEFAULT_CHARSET=utf8mb4 \
> -DDEFAULT_COLLATION=utf8mb4_general_ci \
> -DENABLED_LOCAL_INFILE=1 \
> -DEXTRA_CHARSETS=all \
> -DMYSQL_TCP_PORT=3306 \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DWITH_READLINE=1 \

直接粘貼配置項

cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data -DWITH_BOOST=/root/mysql-8.0.13/boost -DSYSCONFDIR=/etc -DEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_READLINE=1 

配置項說明:

-DCMAKE_INSTALL_PREFIX:安裝路徑
-DMYSQL_DATADIR:數據存放目錄
-DWITH_BOOST:boost源碼路徑
-DSYSCONFDIR:my.cnf配置文件目錄
-DEFAULT_CHARSET:數據庫默認字符編碼
-DDEFAULT_COLLATION:默認排序規則
-DENABLED_LOCAL_INFILE:允許從本文件導入數據
-DEXTRA_CHARSETS:安裝所有字符集
-DMYSQL_TCP_PORT:服務端口號,默認3306
-DMYSQL_UNIX_ADDR:socket文件路徑,默認/tmp/mysql.sock
-DWITH_READLIN:使用readline功能,即方便在命令行復制、粘貼命令

7.編譯,安裝

[root@linux mysql-8.0.13]# echo $(cat /proc/cpuinfo | grep processor |wc -l)	#查看cpu內核數
8	

調用cpu核數編譯

[root@linux mysql-8.0.13]# make -j 6;make install	#編譯並安裝

沒有調用所有的核數編譯,爲了確保系統正常運行。

8.MySQL安裝目錄權限控制,主配置文件設置

[root@linux mysql-8.0.13]# chown -R mysql:mysql /usr/local/mysql/
[root@linux mysql-8.0.13]# vim /etc/my.cnf 
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/data
port=3306
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8
log-error=/data/mysql/log/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid

主配置文件說明:
[mysqld]:模塊名稱
basedir=/usr/local/mysql:mysql安裝目錄
datadir=/data/mysql/data:mysql數據存放目錄
port=3306:mysql監聽端口
socket=/usr/local/mysql/mysql.sock:mysql.sock文件存放目錄
symbolic-links=0:關閉mysql的符號鏈接
character-set-server=utf8:指定mysql的字符集爲utf8
log-error=/data/mysql/log/mysqld.log:指定mysql的錯誤日誌存放路徑
pid-file=/usr/local/mysql/mysqld.pid:mysql的pid文件存放目錄

9.設置啓動腳本

[root@linux mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
[root@linux mysql]# chmod +x /etc/init.d/mysql.server

10.初始化數據庫

[root@linux mysql-8.0.13]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

11.添加系統服務,並啓動服務

[root@linux mysql]# chkconfig --add mysql.server	#添加系統服務
[root@linux mysql]# chkconfig mysql.server on	#開機自啓動
[root@linux ~]# chkconfig --list mysql.server	#查看自啓動狀態

注:該輸出結果只顯示 SysV 服務,並不包含
原生 systemd 服務。SysV 配置數據
可能被原生 systemd 配置覆蓋。 

      要列出 systemd 服務,請執行 'systemctl list-unit-files'。
      查看在具體 target 啓用的服務請執行
      'systemctl list-dependencies [target]'。

mysql.server   	0:1:2:3:4:5:6:

系統控制

[root@linux mysql-8.0.13]# /etc/init.d/mysql.server start	#啓動
Starting MySQL. SUCCESS!
[root@linux mysql-8.0.13]# /etc/init.d/mysql.server status	#查看
 SUCCESS! MySQL running (28610)
[root@linux mysql-8.0.13]# /etc/init.d/mysql.server stop	#關閉
Shutting down MySQL... SUCCESS! 

12.設置環境變量

[root@linux mysql]# vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@linux mysql]# source /etc/profile
或者
[root@linux mysql-8.0.13]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

13.登錄mysql,默認爲空密碼登錄

[root@linux mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.13 Source distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
mysql> exit;
Bye

也可指定用戶登錄MySQL數據庫,但默認是沒有密碼的,直接回車即可。

[root@linux ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.13 Source distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章