MariaDB 是MySQL的一個(gè)分支。 了解一下數(shù)據(jù)庫的發(fā)展歷史,我們知道,MySql數(shù)據(jù)庫不但二次易主,而且還被打入了冷宮(先被sun收購,然后sun被Oracle收購)。因?yàn)镺racle有自己的數(shù)據(jù)庫,同時(shí)只有Oracle自己的員工可以進(jìn)行MySql的研發(fā),所以MySQL之父Widenius先生離開了Sun之后,覺得依靠Sun/Oracle來發(fā)展MySQL,實(shí)在很不靠譜,于是決定另開分支,這個(gè)分支的名字叫做MariaDB。
MariaDB不僅僅是Mysql的一個(gè)替代品,它的主要目的是創(chuàng)新和提高M(jìn)ysql的技術(shù)。
MariaDB是基于MySql原來技術(shù)的基礎(chǔ)上,進(jìn)行的新的開發(fā)發(fā)展,同時(shí)兼容絕大多數(shù)MySql原有技術(shù),對于開發(fā)者來說,幾乎感受不到任何的不同。目前MariaDB是發(fā)展最快的MySQL分支版本,新版本發(fā)布速度已經(jīng)超過了Oracle官方的MySQL版本。
LAMP架構(gòu)盛極一時(shí),這離不開MySQL的免費(fèi)與易用,但是在Oracle收購了Sun之后,很多公司開始擔(dān)憂MySQL的開源前景,而最近Oracle進(jìn)一步閉源的舉措更是讓人難以安心,眾多互聯(lián)網(wǎng)公司紛紛開始尋求MySQL的替代方案。 MariaDB繼續(xù)保持開源的理念,源源不斷的發(fā)布新版本,為互聯(lián)網(wǎng)技術(shù)提供了無限的可能,同時(shí)很多互聯(lián)網(wǎng)巨頭已經(jīng)遷移并使用了MariaDB,所以我們接下來就開始學(xué)習(xí)MariaDB啦。沈北新網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
首先去MariaDB的官方網(wǎng)站上下載MariaDB的二進(jìn)制安裝包,下載地址 https://downloads.mariadb.org/
準(zhǔn)備一個(gè)沒有安裝過MySql的干凈的系統(tǒng)。
首先準(zhǔn)備數(shù)據(jù)庫能夠所需要使用的用戶和用戶組。
# 添加名為mysql的用戶組,并指定gid 為306 # -r 為創(chuàng)建系統(tǒng)用戶組 groupadd -r -g 306 mysql # -r 表示創(chuàng)建系統(tǒng)用戶 # -g 表示執(zhí)行所屬組的gid 為306 # -u 表示指定uid 為306 # -m 創(chuàng)建家目錄 # -d 指定家目錄的路徑 # mysql 想要添加的用戶名 useradd -r -g 306 -u 306 –m –d /app/data mysql
指定數(shù)據(jù)目錄,數(shù)據(jù)目錄的作用就是存儲數(shù)據(jù)庫的位置。以 /app/dbdata 為例。
chown mysql:mysql /app/dbdata
下面我們用一張動態(tài)圖來演示上面的兩個(gè)步驟。
對于已經(jīng)編譯好的二進(jìn)制格式的程序包,通常我們解壓之后就能夠直接使用數(shù)據(jù)庫。但是事實(shí)上不是這么簡單。如果我們曾經(jīng)自己編譯過程序包的話,我們就會知道,在編譯二進(jìn)制程序的過程中,需要指定一些腳本的目錄,或者是二進(jìn)制執(zhí)行程序的路徑。對于MariaDB也是如此,因?yàn)槲覀兿螺d的是已經(jīng)編譯好的二進(jìn)制程序包,所以我們解壓的程序也要放到固定的目錄下,這個(gè)目錄就是/usr/local/mysql。
下面就是解壓二進(jìn)制程序的步驟,不過我們沒有直接創(chuàng)建mysql 目錄,而是建立了一個(gè)軟連接指向了我們解壓之后的目錄。
# 將壓縮文件解壓到 /usr/local 路徑下 [root@localhost ~]#tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local # 切換目錄 [root@localhost ~]cd /usr/local/ # 針對解壓后的路徑 建立軟連接 [root@localhost local]#ln -sv mariadb-10.2.8-linux-x86_64/ mysql # 查看建立之后的軟連接 [root@localhost local]#ll -d m* drwxrwxr-x 12 1021 1004 290 Aug 18 04:16 mariadb-10.2.8-linux-x86_64 lrwxrwxrwx 1 root root 28 Sep 27 09:39 mysql -> mariadb-10.2.8-linux-x86_64/ # 修改目錄的權(quán)限,讓mysql 用戶具有全部最高權(quán)限。 [root@localhost local]#chown -R root:mysql /usr/local/mysql/ [root@localhost local]#ll -d m* drwxrwxr-x 12 root mysql 290 Aug 18 04:16 mariadb-10.2.8-linux-x86_64 lrwxrwxrwx 1 root root 28 Sep 27 09:39 mysql -> mariadb-10.2.8-linux-x86_64/
下面我們?nèi)ゲ榭匆幌?解壓后的目錄內(nèi)一共都包含哪些內(nèi)容。
[root@localhost mysql]#ll total 176 drwxrwxr-x 2 root mysql 4096 May 3 02:05 bin -rw-r--r-- 1 root mysql 17987 Aug 17 18:05 COPYING -rw-r--r-- 1 root mysql 86263 Aug 17 18:05 COPYING.thirdparty -rw-r--r-- 1 root mysql 2275 Aug 17 18:05 CREDITS drwxrwxr-x 3 root mysql 18 Aug 18 04:16 data -rw-r--r-- 1 root mysql 8245 Aug 17 18:05 EXCEPTIONS-CLIENT drwxrwxr-x 3 root mysql 19 Aug 18 04:15 include -rw-r--r-- 1 root mysql 8694 Aug 17 18:05 INSTALL-BINARY drwxrwxr-x 4 root mysql 318 May 3 02:05 lib drwxrwxr-x 4 root mysql 30 Aug 18 04:16 man drwxrwxr-x 11 root mysql 4096 Aug 18 04:16 mysql-test -rw-r--r-- 1 root mysql 2371 Aug 17 18:05 README.md -rw-r--r-- 1 root mysql 19510 Aug 17 18:05 README-wsrep drwxrwxr-x 2 root mysql 30 Aug 18 04:16 scripts drwxrwxr-x 30 root mysql 4096 Aug 18 04:16 share drwxrwxr-x 4 root mysql 4096 Aug 18 04:16 sql-bench drwxrwxr-x 3 root mysql 275 Aug 18 04:16 support-files
bin: 可執(zhí)行的二進(jìn)制程序的存放目錄,客戶端程序mysql就位于這個(gè)目錄下。
COPYING:版權(quán)以及開源信息
COPYING.thirdparty: 版權(quán)信息
CREDITS:關(guān)于MariaDB軟件基金會的一些相關(guān)信息,里面還有國內(nèi)的互聯(lián)網(wǎng)巨頭阿里
data:默認(rèn)的數(shù)據(jù)庫存放目錄,如果我們一開始沒有指定數(shù)據(jù)庫存放目錄的話,那就會被存儲到這個(gè)位置。
EXCEPTIONS-CLIENT:例外情況
include:MariaDB 所需要的一些程序文件
INSTALL-BINARY: 安裝幫助文檔,可以詳細(xì)閱讀,對安裝數(shù)據(jù)庫有很大的幫助
lib: 軟件運(yùn)行所需要的庫文件
man:軟件的幫助文檔
mysql-test: 數(shù)據(jù)庫的測試組件
scipts:mysql初始化初始化時(shí)要用到的腳本文件,通讀一下腳本,可以了解Mysql 的安裝過程
share: 共享的文件內(nèi)容
support-files: mysql 正常運(yùn)行所需要的配置文件或者文檔,這一點(diǎn)很重要,如果我們要自定義配置文件的話,就需要參考這里面的配置文件來進(jìn)行定義。
這里有一點(diǎn)需要注意:data目錄是數(shù)據(jù)庫的存放路徑,我們在之前已經(jīng)手動指定。在實(shí)際生產(chǎn)中,企業(yè)數(shù)據(jù)增長很快,數(shù)據(jù)庫文件有可能會很大,因此最好將該目錄指定到一個(gè)單獨(dú)的磁盤上,或者大分區(qū),或者使用邏輯卷都可以,避免因物理空間不足,導(dǎo)致出現(xiàn)故障。
MariaDB 的配置文件可以存放在多個(gè)路徑下面。但是配置文件的查找次序是固定的。這樣也就導(dǎo)致了,配置文件具有了優(yōu)先級,后面的配置會覆蓋掉前面的配置(配置參數(shù)相同的情況下)。 我們參考MariaDB 安裝路徑下的support-files 中的配置文件,創(chuàng)建一個(gè)我們自己的配置文件并存放于/etc/mysql/my.cnf 中
# 創(chuàng)建配置文件路徑 [root@localhost ~]#mkdir /etc/mysql [root@localhost ~]#cd /etc/mysql # 將參考文件復(fù)制到我們創(chuàng)建的mysql 路徑下 [root@localhost mysql]#cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf
然后在這個(gè)配置文件中,加入我們剛剛的指定的一些目錄和信息。如下圖所示。
前面我們說過,配置文件的查找執(zhí)行是有一定順序的。當(dāng)MariaDB安裝成功之后,執(zhí)行下面的命令,就可以查看到配置文件的查找順序了。
# 創(chuàng)建配置文件路徑 [root@localhost ~]#mkdir /etc/mysql [root@localhost ~]#cd /etc/mysql # 將參考文件復(fù)制到我們創(chuàng)建的mysql 路徑下 [root@localhost mysql]#cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf
進(jìn)入到 /usr/local/mysql/ 路徑下,創(chuàng)建數(shù)據(jù)庫文件。在創(chuàng)建數(shù)據(jù)庫的同時(shí)指定數(shù)據(jù)庫存放目錄以及默認(rèn)用戶。
[root@localhost mysql]#cd /usr/local/mysql/ [root@localhost mysql]#./scripts/mysql_install_db --datadir=/app/dbdata --user=mysql # 切換到我們指定的數(shù)據(jù)庫存放路徑下面,可以看到一些相關(guān)文件。這里面的每一個(gè)路徑就是一個(gè)數(shù)據(jù)庫。 [root@localhost mysql]#cd /app/dbdata/ [root@localhost dbdata]#ls aria_log.00000001 ib_buffer_pool ib_logfile0 mysql mysql-bin.index performance_schema aria_log_control ibdata1 ib_logfile1 mysql-bin.000001 mysql-bin.state test
因?yàn)镃entOS 6 和CentOS 7 的日志路徑有所不同,所以創(chuàng)建的日志文件的路徑也是不一樣的。CentOS6 中是
/var/log/mysqld.log
,而CentOS 7 中則是/var/log/mariadb/mariadb.log
# 創(chuàng)建文件路徑 [root@localhost mysql]#mkdir /var/log/mariadb # 創(chuàng)建日志文件 [root@localhost mysql] /var/log/mariadb/mariadb.log # 修改文件權(quán)限 [root@localhost mysql]#chown mysql /var/log/mariadb/mariadb.log
如果這一步,不確定應(yīng)該創(chuàng)建哪些文件,那么就可以先執(zhí)行第七步操作,然后根據(jù)第七步的錯(cuò)誤提示,來創(chuàng)建我們所需要的文件。
將mysql的服務(wù)腳本復(fù)制到服務(wù)目錄下。因?yàn)镃entOS7 與低版本的服務(wù)兼容,所以我們就直接將腳本復(fù)制到/etc/init.d/目錄下就好。
#復(fù)制mysql的腳本到服務(wù)目錄下 [root@localhost mysql]#cp support-files/mysql.server /etc/rc.d/init.d/mysqld # 將mysql的服務(wù)添加到開機(jī)啟動中 [root@localhost mysql]#chkconfig --add mysqld [root@localhost mysql]#chkconfig --list Note: This output shows SysV services only and does not include native systemd services. SysV configuration data might be overridden by native systemd configuration. If you want to list systemd services use 'systemctl list-unit-files'. To see services enabled on particular target use 'systemctl list-dependencies [target]'. mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off # 啟動MySQL 服務(wù) [root@localhost mysql]#service mysqld start Starting mysqld (via systemctl): [ OK ]
如果我們在第六步?jīng)]有指定日志文件或者指定了日志文件,但是忘記修改權(quán)限的話,這一步都會出錯(cuò)的,不過出錯(cuò)了也不要著急,根據(jù)提示信息一點(diǎn)一點(diǎn)來修改就可以了。
我們在這一步中將mysql的服務(wù)腳本復(fù)制到了/etc/rc.d/init.d/路徑下,這是因?yàn)镃entOS 7兼容了CentOS 6 的服務(wù)模式。當(dāng)然也可以按照CentOS 7的服務(wù)管理方式來進(jìn)行,配置文件位于
/usr/lib/systemd/system
路徑下。
完成了前面的幾步操作,我們就已經(jīng)完成了大部分的工作,此時(shí)服務(wù)已經(jīng)啟動,我們可以使用ss 工具來查看3306端口是否已經(jīng)開啟。 但是此時(shí),我們使用mysql 命令通過客戶端去訪問mysql數(shù)據(jù)庫的話,會提示找不到mysql 命令,所以我們要指定一下,mysql 命令的環(huán)境變量。 前面我們說過,mysql解壓之后一些二進(jìn)制的可執(zhí)行文件位于 解壓后目錄的/bin文件夾下,所以我們將這個(gè)路徑添加到環(huán)境變量中。
# 單獨(dú)指定一個(gè)路徑來修改環(huán)境變量,這樣便于管理。 [root@localhost mysql]#cat /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH # 執(zhí)行一下這個(gè)腳本,使環(huán)境變量生效 [root@localhost mysql]#. /etc/profile.d/mysql.sh
完成了第七步之后,我們已經(jīng)能夠順利的訪問到數(shù)據(jù)了,甚至匿名訪問也是的??墒谴藭r(shí)的數(shù)據(jù)庫還是不足夠安全的,并不能投入到實(shí)際的生產(chǎn)中使用,所以我們需要對數(shù)據(jù)庫進(jìn)行安全初始化。
我們根據(jù)安裝文件中提供的安全初始化腳本,來進(jìn)行數(shù)據(jù)庫的安全初始化,詳細(xì)查看下面的這張動圖。
下面對圖中修改過的幾項(xiàng)進(jìn)行一個(gè)詳細(xì)的解釋
# 是否重新設(shè)置root用戶的密碼 Set root password? [Y/n] y # 是否刪除匿名用戶 Remove anonymous users? [Y/n] y # 是否不允許root用戶遠(yuǎn)程登陸 Disallow root login remotely? [Y/n] n # 是否刪除測試數(shù)據(jù)庫 Remove test database and access to it? [Y/n] y # 重新加載可用的數(shù)據(jù)庫表 Reload privilege tables now? [Y/n] y
以上,我們就詳細(xì)的介紹了在CentOS 7 中安裝MariaDB 10.2.8 版本的全部過程。并且我們只是進(jìn)行了簡單的配置,在實(shí)際生產(chǎn)中,會經(jīng)常使用到MariaDB,所以將整個(gè)安裝過程寫成一個(gè)腳本,或許也是一個(gè)不錯(cuò)的選擇。若有問題,歡迎留言。
個(gè)人博客地址:http://www.pojun.tech/ 歡迎訪問
網(wǎng)頁名稱:CentOS7安裝通用二進(jìn)制格式MariaDB10.2.8
當(dāng)前地址:http://www.rwnh.cn/article12/jgpedc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作、搜索引擎優(yōu)化、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)