CentOS7下MySQL的三種安裝方式詳解

操作系統環境:

CentOS 7.4最小化安裝

[root@node3 src]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

[root@node3 ~]# uname -r

3.10.0-693.5.2.el7.x86_64

[root@node3 ~]#

安裝版本為:MySQL 5.7.20


一、編譯安裝MySQL5.7

1、下載源碼包

[root@node3 ~]# cd /usr/local/src/

[root@node3 src]# wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz

或者將已經下載好的源碼包上傳至/usr/local/src目錄。因為使用CMake編譯Mysql需要boost,所以需要下載mysql-boost-5.7.20.tar.gz包。

[root@node3 src]# tar xf mysql-boost -5.7.20.tar.gz

[root@node3 src]# ll mysql-5.7.20

total 268

drwxr-xr-x2 7161 314154096 Sep 13 23:56BUILD

drwxr-xr-x6 7161 314154096 Sep 13 23:56client

drwxr-xr-x4 7161 314154096 Sep 13 23:56cmake

-rw-r--r--1 7161 31415 26727 Sep 13 23:48 CMakeLists.txt

drwxr-xr-x3 7161 3141521 Sep 13 23:56cmd-line-utils

-rw-r--r--1 7161 31415 13832 Sep 13 23:48 config.h.cmake

-rw-r--r--1 7161 31415 33704 Sep 13 23:48 configure.cmake

-rw-r--r--1 7161 31415 17987 Sep 13 23:48 COPYING

drwxr-xr-x2 7161 31415293 Sep 13 23:56dbug

drwxr-xr-x2 7161 3141580 Sep 13 23:56Docs

-rw-r--r--1 7161 31415 66241 Sep 13 23:48 Doxyfile-perfschema

drwxr-xr-x6 7161 31415309 Sep 13 23:56extra

drwxr-xr-x5 7161 314154096 Sep 13 23:56include

-rw-r--r--1 7161 31415333 Sep 13 23:48INSTALL

drwxr-xr-x5 7161 31415135 Sep 13 23:56 libbinlogevents

drwxr-xr-x3 7161 3141539 Sep 13 23:56libbinlogstandalone

drwxr-xr-x7 7161 314154096 Sep 13 23:56libevent

drwxr-xr-x4 7161 31415297 Sep 13 23:56libmysql

drwxr-xr-x3 7161 31415204 Sep 13 23:56libmysqld

drwxr-xr-x2 7161 314154096 Sep 13 23:56libservices

drwxr-xr-x2 7161 314154096 Sep 13 23:56man

drwxr-xr-x 10 7161 31415303 Sep 13 23:56 mysql-test

drwxr-xr-x2 7161 314154096 Sep 13 23:56mysys

drwxr-xr-x2 7161 31415321 Sep 13 23:56mysys_ssl

drwxr-xr-x 10 7161 31415131 Sep 13 23:56 packaging

drwxr-xr-x 18 7161 314154096 Sep 13 23:56 plugin

drwxr-xr-x4 7161 3141536 Sep 13 23:56rapid

-rw-r--r--1 7161 314152478 Sep 13 23:48README

drwxr-xr-x2 7161 314154096 Sep 13 23:56regex

drwxr-xr-x3 7161 314154096 Sep 13 23:56scripts

drwxr-xr-x7 7161 31415 20480 Sep 13 23:56 sql

drwxr-xr-x2 7161 31415146 Sep 13 23:56sql-common

drwxr-xr-x 14 7161 31415186 Sep 13 23:56 storage

drwxr-xr-x2 7161 314154096 Sep 13 23:56strings

drwxr-xr-x4 7161 31415241 Sep 13 23:56support-files

drwxr-xr-x2 7161 3141598 Sep 13 23:56testclients

drwxr-xr-x5 7161 3141570 Sep 13 23:56unittest

-rw-r--r--1 7161 3141588 Sep 13 23:48VERSION

drwxr-xr-x3 7161 31415298 Sep 13 23:56vio

drwxr-xr-x2 7161 3141532 Sep 13 23:56win

drwxr-xr-x2 7161 314154096 Sep 13 23:56zlib

2、安裝cmake編譯工具

[root@node3 src]# yum install cmakecmake-gui –y

3、安裝bison

[root@node3 src]# yum install bison –y

4、安裝libaio-devel

[root@node3 src]# yum install libaio-devel –y

5、安裝gcc gcc-c++

[root@node3 debug]# yum install -y gccgcc-c++

6、創建mysql用戶

[root@node3 data_3306]# groupadd mysql

[root@node3 data_3306]# useradd -r -g mysql-s /bin/false mysql

7、創建編譯目錄

在編譯目錄中編譯,可以使MySQL源碼目錄不受影響。

[root@node3 src]# cd mysql-5.7.20

[root@node3 mysql-5.7.20]# mkdir debug

[root@node3 mysql-5.7.20]# cd debug/

8、使用cmake配置編譯環境

[root@node3 debug]#cmake ..-DBUILD_CONFIG=mysql_release-DINSTALL_LAYOUT=STANDALONE-DCMAKE_BUILD_TYPE=RelWithDebInfo-DENABLE_DTRACE=OFF-DWITH_EMBEDDED_SERVER=OFF -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=bundled-DWITH_ZLIB=system -DWITH_PAM=ON -DCMAKE_INSTALL_PREFIX=/var/mysql-DINSTALL_PLUGINDIR="/var/mysql/lib/plugin" -DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EDITLINE=bundled

-DFEATURE_SET=community -DCOMPILATION_COMMENT="MySQL Server (GPL)"

-DWITH_DEBUG=OFF -DWITH_BOOST=../boost/boost_1_59_0

如果執行完之后,看到下面兩行信息,說明配置完成:

-- Configuring done

-- Generating done

此時,在當前目錄下生成了Makefile文件,這就是上面CMake配置時生成的,有了Makefile,就可以通過make開始編譯源碼了。

9、編譯mysql

直接在當前目錄下執行如下命令:

[root@node3 ~]# make -j 24

后面的參數–j 24是設置了使用24個線程來編譯,可以加快編譯過程。前提是你服務器的配置非常好了。否則還是直接使用make為好。

看到如下信息說明編譯完成:

10、安裝Mysql

編譯完成生,執行下面的命令安裝MySQL

[root@node3 ~]# make install

因為在執行CMake時,指定了參數DCMAKE_INSTALL_PREFIX=/var/mysql,所以安裝后,所有關于MySQL需要的內容都會安裝在該目錄下面。

[root@node3 debug]# ll /var/mysql/

total 60

drwxr-xr-x2 root root4096 Dec 10 22:29 bin

-rw-r--r--1 root root 17987 Sep 13 23:48 COPYING

-rw-r--r--1 root root 17987 Sep 13 23:48 COPYING-test

drwxr-xr-x2 root root55 Dec 10 22:28docs

drwxr-xr-x3 root root4096 Dec 10 22:28include

drwxr-xr-x4 root root172 Dec 10 22:29 lib

drwxr-xr-x4 root root30 Dec 10 22:29 man

drwxr-xr-x 10 root root289 Dec 10 22:29 mysql-test

-rw-r--r--1 root root2478 Sep 13 23:48README

-rw-r--r--1 root root2478 Sep 13 23:48README-test

drwxr-xr-x 28 root root4096 Dec 10 22:29 share

drwxr-xr-x2 root root90 Dec 10 22:29support-files

11、安裝MySQL庫

編譯完成后,接著就創建一個新的數據庫,對于MySQL5.7,安裝方法與之前的版本有所不同,MySQL5.7更簡單了,可以直接使用mysqld來安裝,要準備一個配置文件,名字默認為my.cnf,

[root@node3 debug]# mkdir data_3306

[root@node3 data_3306]# cat /etc/my.cnf

[mysqld]

port=3306

datadir=/usr/local/mysql/data_3306

log_error=/usr/local/mysql/data_3306/error.log

basedir=/usr/local/mysql [root@node3data_3306]# /usr/local/mysql/bin/mysqld --default-file=/etc/my.cnf --initialize--user=mysql

執行之后,在目錄/usr/local/mysql/data_3306下:

[root@node3 mysql]# ll ./data_3306/

total 110632

-rw-r----- 1 mysql mysql56 Dec 11 08:31 auto.cnf

-rw-r----- 1 mysql mysql802 Dec 11 08:31 error.log

-rw-r----- 1 mysql mysql419 Dec 11 08:31 ib_buffer_pool

-rw-r----- 1 mysql mysql 12582912 Dec 1108:31 ibdata1

-rw-r----- 1 mysql mysql 50331648 Dec 1108:31 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 Dec 1108:31 ib_logfile1

drwxr-x--- 2 mysql mysql4096 Dec 11 08:31 mysql

drwxr-x--- 2 mysql mysql8192 Dec 11 08:31 performance_schema

drwxr-x--- 2 mysql mysql8192 Dec 11 08:31 sys

[root@node3 mysql]#

12、啟動MySQL

[root@node3 mysql]# /usr/local/mysql/bin/mysqld--user=mysql &

查看進程:


我們看到mysql服務已經啟動

啟動完成之后,我們登錄,測試一下:

[root@node3 ~]# /usr/local/mysql/bin/mysql-uroot -p

Enter password:

ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)

報錯了,這是因為MySQL5.7調整了案例策略,新安裝數據庫之后,默認root密碼不是空的了。在啟動時隨機生成了一個密碼,我們可以在error.log里找到。



再次登錄后,我們發現不能進行任何操作,提示我們要先修改密碼:


我們必須通過Alter User語句修改密碼:

mysql>alter user

'root'@'localhost' identified by "Cflp#?1312";

退出后,重新登錄,一切OK了。



我們也可以在初始化的時候使用參數設置root為空密碼:--initialize-insecure。


13、配置多實例

新建新實例數據目錄data_3307及配置文件my-3307.cnf:

[root@node3 ~]# cd /usr/local/mysql/

[root@node3 mysql]# pwd

/usr/local/mysql

[root@node3 mysql]# mkdir data_3307

[root@node3 mysql]# cat /etc/my-3307.cnf

[mysqld]

port=3307

datadir=/usr/local/mysql/data_3307

log_error=/usr/local/mysql/data_3307/error.log

basedir=/usr/local/mysql

創建3307數據庫:

[root@node3 mysql]#/usr/local/mysql/bin/mysqld --defaults-file=/etc/my-3307.cnf--initialize-insecure --user=mysql

啟動3307數據庫服務:

[root@node3 mysql]#/usr/local/mysql/bin/mysqld --defaults-file=/etc/my-3307.cnf --user=mysql--socket=/tmp/mysql-3307.sock &

登錄數據庫:

[root@node3 mysql]#/usr/local/mysql/bin/mysql -h127.0.0.1 -P3308 -p

Enter password:

Welcome to the MySQL monitor.Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.20 MySQL Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or itsaffiliates. All rights reserved.

Oracle is a registered trademark of OracleCorporation and/or its

affiliates. Other names may be trademarksof their respective

owners.

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

mysql>

這次我們直接登錄了,因為我們在初始化數據庫的時候用戶了:--initialize-insecure參數。


二、二進制方式安裝MySQL5.7

1、獲取二進制安裝包

下載二進制安裝包mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz,并上傳至/usr/local/src目錄

2、創建用戶

[root@node3 src]# groupadd mysql

[root@node3 src]# useradd -r -g mysql -s/bin/false mysql

3、安裝依賴

[root@node3 src]# yum install libaio –y

4、安裝

[root@node3 src]# tar xfmysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

[root@node3 src]# mvmysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/

[root@node3 src]# cd ..

[root@node3 local]# ln -s/usr/local/mysql-5.7.20-linux-glibc2.12-x86_64/ /usr/local/mysql

[root@node3 local]# cd mysql

[root@node3 mysql]# ll

total 36

drwxr-xr-x2 root root4096 Dec 11 20:56bin

-rw-r--r--1 7161 31415 17987 Sep 13 23:48 COPYING

drwxr-xr-x2 root root55 Dec 11 20:56docs

drwxr-xr-x3 root root4096 Dec 11 20:56include

drwxr-xr-x5 root root229 Dec 11 20:56lib

drwxr-xr-x4 root root30 Dec 11 20:56man

-rw-r--r--1 7161 314152478 Sep 13 23:48README

drwxr-xr-x 28 root root4096 Dec 11 20:56 share

drwxr-xr-x2 root root90 Dec 11 20:56support-files

5、初始化MySQL數據庫

[root@node3 mysql]# mkdir data_3306

[root@node3 mysql]# vim /etc/my.cnf使用下面的內容

[mysqld]

port=3306

datadir=/usr/local/mysql/data_3306

log_error=/usr/local/mysql/data_3306/error.log

basedir=/usr/local/mysql

[root@node3 mysql]#/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize--user=mysql

6、啟動MySQL

[root@node3 mysql]#/usr/local/mysql/bin/mysqld --user=mysql &

查看進程:


我們看到mysql服務已經啟動

啟動完成之后,我們登錄,測試一下:

[root@node3 ~]# /usr/local/mysql/bin/mysql-uroot -p

Enter password:

ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)

報錯了,這是因為MySQL5.7調整了案例策略,新安裝數據庫之后,默認root密碼不是空的了。在啟動時隨機生成了一個密碼,我們可以在error.log里找到。


再次登錄后,我們發現不能進行任何操作,提示我們要先修改密碼:


我們必須通過Alter User語句修改密碼:

mysql> alter user 'root'@'localhost'identified by "Cflp#?1312";

退出后,重新登錄,一切OK了。


我們也可以在初始化的時候使用參數設置root為空密碼:--initialize-insecure。


三、YUM方式安裝MySQL5.7

我們使用清華源來安裝:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/

1、添加YUM倉庫

[root@node3 ~]# rpm -ivhhttps://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/mysql57-community-release-el7-10.noarch.rpm

Retrieving https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/mysql57-community-release-el7-10.noarch.rpm

warning: /var/tmp/rpm-tmp.CQVpW4: Header V3DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...#################################[100%]

Updating / installing...

1:mysql57-community-release-el7-10 #################################[100%]

[root@node3 ~]# ll /etc/yum.repos.d/

total 44

-rw-r--r--. 1 root root 1664 Aug 30 23:53CentOS-Base.repo

-rw-r--r--. 1 root root 1309 Aug 30 23:53CentOS-CR.repo

-rw-r--r--. 1 root root649 Aug 30 23:53 CentOS-Debuginfo.repo

-rw-r--r--. 1 root root314 Aug 30 23:53 CentOS-fasttrack.repo

-rw-r--r--. 1 root root630 Aug 30 23:53 CentOS-Media.repo

-rw-r--r--. 1 root root 1331 Aug 30 23:53CentOS-Sources.repo

-rw-r--r--. 1 root root 3830 Aug 30 23:53CentOS-Vault.repo

-rw-r--r--. 1 root root951 Oct3 01:44 epel.repo

-rw-r--r--. 1 root root 1050 Oct3 01:44 epel-testing.repo

-rw-r--r--1 root root 1627 Apr52017 mysql-community.repo

-rw-r--r--1 root root 1663 Apr52017 mysql-community-source.repo

[root@node3 ~]#

2、配置源:

默認情況下:我們剛安裝的倉庫還是指向官方的源,所以我們需要重新配置:

主要配置三個部分:


將上面的地址替換為:

https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-connectors-community-el7/



將上面的地址替換為:

https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-tools-community-el7/


將上面的地址替換為:

https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/

3、安裝

[root@node3 ~]# yum install mysqlmysql-server mysql-devel –y

4、啟動

[root@node3 system]# systemctl start mysqld

5、登錄:

[root@node3 ~]# /usr/local/mysql/bin/mysql-uroot -p

Enter password:

ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)

報錯了,這是因為MySQL5.7調整了案例策略,新安裝數據庫之后,默認root密碼不是空的了。在啟動時隨機生成了一個密碼,我們可以在error.log里找到。


再次登錄后,我們發現不能進行任何操作,提示我們要先修改密碼:



我們必須通過Alter User語句修改密碼:

mysql> alter user 'root'@'localhost'identified by "Cflp#?1312";

退出后,重新登錄,一切OK了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,428評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,024評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,285評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,548評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,328評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,878評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,971評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,098評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,616評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,554評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,725評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,243評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,971評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,361評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,613評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,339評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,695評論 2 370

推薦閱讀更多精彩內容