• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于shell腳本的Linux環(huán)境下MySQL快速部署方法

    2020-12-28 02:10:22李燦孫東平
    電腦知識(shí)與技術(shù) 2020年33期
    關(guān)鍵詞:升級(jí)

    李燦 孫東平

    摘要:隨著互聯(lián)網(wǎng)時(shí)代的到來,越來越多的應(yīng)用采用了MySQL作為應(yīng)用的后臺(tái)數(shù)據(jù)庫(kù)。MySQL的供應(yīng)商免費(fèi)提供各種開源版本,其中Linux版本的安裝包不提供可視化的安裝界面,需要用戶手動(dòng)解壓并修改配置,十分煩瑣并且耗時(shí)。本文提供一種快速部署MySQL的方法,使用Shell安裝腳本達(dá)到一鍵安裝和升級(jí)數(shù)據(jù)庫(kù)的目的,該方法可以大大節(jié)約用戶部署數(shù)據(jù)庫(kù)的時(shí)間,也減少誤操作引起的數(shù)據(jù)庫(kù)啟動(dòng)異常等問題。

    關(guān)鍵詞:MySQL;一鍵安裝;升級(jí);Shell腳本

    中圖分類號(hào):TP183 文獻(xiàn)識(shí)別碼:A

    文章編號(hào):1009-3044(2020)33-0033-02

    開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

    1 引言

    MySQL數(shù)據(jù)庫(kù)是Oracle公司研發(fā)的一款關(guān)系型數(shù)據(jù)庫(kù),由于體積小,速度快,支持多種操作系統(tǒng),同時(shí)又免費(fèi)開源,具有良好的生態(tài)圈,一直以來備受各中小型互聯(lián)網(wǎng)公司的青睞。MySQL數(shù)據(jù)庫(kù)目前已經(jīng)成為開源應(yīng)用中最大的關(guān)系型數(shù)據(jù)庫(kù),海量的應(yīng)用將數(shù)據(jù)存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中,由于承擔(dān)著數(shù)據(jù)的安全性和可靠性的職責(zé),學(xué)習(xí)和研究MySQL數(shù)據(jù)庫(kù)技術(shù)顯得尤為重要。

    所有基于MySQL數(shù)據(jù)庫(kù)的性能測(cè)試以及應(yīng)用都必須首先完成MySQL環(huán)境的搭建和部署,安裝部署MySQL或升級(jí)新版本MySQL在研發(fā)和測(cè)試的工作中被頻繁使用。因此提高安裝部署的效率顯得非常重要。

    本文將通過研究MySQL數(shù)據(jù)庫(kù)的安裝部署,提出一種快速部署和升級(jí)MySQL數(shù)據(jù)庫(kù)的方法。

    2 通常的安裝方式

    MySQL數(shù)據(jù)庫(kù)支持跨平臺(tái)操作,有多個(gè)版本的安裝包,包括Windows版、Unix版、Linux版和Mac OS版等,常用的有Win-dows版和Linux版,其中Windows版提供了可視化的圖形化界面安裝工具,但是開發(fā)常用的Linux版本卻只能依靠手動(dòng)執(zhí)行命令語(yǔ)句來完成安裝部署。通常情況下,Linux系統(tǒng)中MySQL的安裝需要經(jīng)過環(huán)境檢測(cè)、下載、解壓、拷貝、配置以及啟動(dòng)等一系列的動(dòng)作。

    ①檢測(cè)安裝環(huán)境

    [root@localhost/]#rpm -qa l grep mysql

    檢查是否安裝過Mysql,如果安裝過,需要?jiǎng)h除安裝包以及相應(yīng)的目錄文件。

    ②檢查是否已經(jīng)創(chuàng)建mysql用戶和用戶組,如果沒有,需要新建mysql用戶和用戶組。

    [root@localhost/]#id mysql

    [root@localhost/]#groupadd mysql

    [root@localhost/]#useradd—r-g mysql mysql

    ③下載安裝包

    通常為了安全,我們的環(huán)境不能與Internet連通,需要將已經(jīng)下載好的安裝包上傳到服務(wù)器。在允許聯(lián)網(wǎng)的情況下,可以使用wget命令下載安裝包。

    [root@localhost/]#, wget https://dev. mysql. com/get/Downloads/MySQL-5.7/mysql-5.7.1

    -linux-glibc2.1 2-x86_64.tar.gz

    ④解壓安裝包

    [root@localhost/]# tar xzvf mysql-5.7.1-linux-glibc2.12-x86_64.tar.gz

    ⑤拷貝可執(zhí)行程序和配置文件模板到相應(yīng)目錄,如果/usr/local/目錄下不存在mysql目錄,可以手動(dòng)創(chuàng)建該目錄

    [root@localhost/l# mv mysql-5.7.1-linux-glibc2.12-x86_64/usr/locaVmysql

    ⑥在/usr/local/mysql目錄下創(chuàng)建data目錄以及etc目錄,Log日志目錄,同時(shí)需改環(huán)境變量文件。

    [root@localhost/]#mkdir /usr/local/mysql/data

    [root@localhost/]#mkdir /usr/local/mysql/etc

    [root@localhost/]#mkdir /usr/local/mysql/log

    [root@localhost/]#chown -R mysql:mysql /usr/local/mysql

    [root@localhost/]#chmod -R 755 /usr/local/mysql

    ⑦切換到/usr/local/mysql/bin目錄下,執(zhí)行初始化數(shù)據(jù)庫(kù)命令

    [root@localhost bin]# ./mysqld -initialize -user=mysql一一datadir=/usr/loc al/mysql/data -basedir=/usr/loc al/mysql

    ⑧修改配置文件my.cnf,設(shè)置數(shù)據(jù)文件存放路徑、socket連接以及監(jiān)聽端口,默認(rèn)端口為3306

    [root@localhost bin]# vi /etc/my.cnf

    [mysqld]

    datadir=/usr/local/mysql/data

    port= 3306

    symbolic-links=0

    max_connections=400

    innodb_file_per_table=1

    ⑨啟動(dòng)數(shù)據(jù)庫(kù)

    [root@localhost/]#/usr/local/mysql/support-files/mysql.

    serv-er start

    ⑩檢查數(shù)據(jù)庫(kù)進(jìn)程是否啟動(dòng)成功

    通過檢查數(shù)據(jù)庫(kù)進(jìn)程號(hào)是否改變,來判定數(shù)據(jù)庫(kù)進(jìn)程是否成功啟動(dòng)。也可以通過日志信息判斷數(shù)據(jù)庫(kù)是否啟動(dòng)成功。登錄連接數(shù)據(jù)庫(kù),執(zhí)行查看數(shù)據(jù)庫(kù)是否正常T作。

    由此可見,要完成以上安裝步驟,手動(dòng)執(zhí)行時(shí)間長(zhǎng),容易引入人為操作的失誤,最重要的是手動(dòng)操作不具有可復(fù)制性,由此增加了研發(fā)和測(cè)試人員的工作量,自動(dòng)安裝升級(jí)MySQL就是在這種環(huán)境下應(yīng)運(yùn)而生的。

    3 shell腳本關(guān)鍵技術(shù)

    Shell腳本語(yǔ)言是一個(gè)用C語(yǔ)言編寫的程序,是操作系統(tǒng)提供給用戶的操作接口。用戶通常使用shell訪問Linux內(nèi)核的服務(wù)。一般shell指的是Shell腳本,也就是將一些Shell的語(yǔ)法與指令寫進(jìn)一個(gè)文本文件,用正則表達(dá)式、管道命令和數(shù)據(jù)流重定向等功能對(duì)數(shù)據(jù)進(jìn)行集中處理。Shell腳本類似于Win-dows下的批處理,可以高效地管理和執(zhí)行命令。

    Shell腳本語(yǔ)言的語(yǔ)法和結(jié)構(gòu)相對(duì)于編譯語(yǔ)言比較簡(jiǎn)單,書寫也比較方便,腳本語(yǔ)言可以不經(jīng)過編譯直接運(yùn)行,此外Linux系統(tǒng)為Shell腳本提供了awk,sed等應(yīng)用程序,使得Shell腳本可以更方便快捷的處理實(shí)物[1]。

    將手動(dòng)安裝MySQL的每個(gè)步驟的執(zhí)行命令匯集成一個(gè)Shell腳本,可以提高執(zhí)行效率。

    改進(jìn)后的白動(dòng)安裝方式:

    本文提供的MySQL-鍵安裝就是將手動(dòng)安裝部署MySQL的操作命令放到一個(gè)sh文件中,通過調(diào)用該腳本,可以一次性完成數(shù)據(jù)庫(kù)的安裝配置,并啟動(dòng)數(shù)據(jù)庫(kù)。

    一鍵安裝部署腳本的執(zhí)行流程如下圖所示:

    首先需要檢查安裝環(huán)境,通過調(diào)用函數(shù)check_env()檢查當(dāng)前Linux環(huán)境下是否已經(jīng)安裝MySQL,同時(shí)檢查當(dāng)前用戶的環(huán)境變量文件,設(shè)置可執(zhí)行文件的執(zhí)行路徑,庫(kù)文件的存放目錄等。

    然后執(zhí)行調(diào)用install_mysq()函數(shù),下載tar.gz安裝包,執(zhí)行解壓安裝包命令,需要注意的是,每完成一次關(guān)鍵命令,需要對(duì)命令執(zhí)行是否成功做一次檢測(cè),遇到執(zhí)行異常需要退出程序,并打印日志方便定位故障。依次創(chuàng)建安裝目錄,拷貝文件到執(zhí)行的安裝目錄下,并調(diào)用方法modify_config()修改配置文件,設(shè)置數(shù)據(jù)文件存放路徑和MySQL關(guān)鍵配置項(xiàng)。以上函數(shù)調(diào)用完成后,調(diào)用start_mysql()方法執(zhí)行初始化MySQL命令,并啟動(dòng)MySQL數(shù)據(jù)庫(kù)。在start_mysql()方法中需要獲取啟動(dòng)后的MySQL進(jìn)程的進(jìn)程號(hào),并監(jiān)控該進(jìn)程號(hào)是否發(fā)生變化,如果進(jìn)程號(hào)穩(wěn)定不變,并且啟動(dòng)日志中無報(bào)錯(cuò)字樣,視為數(shù)據(jù)庫(kù)正常啟動(dòng),此時(shí),安裝腳本執(zhí)行完成,退出安裝。反之,如果進(jìn)程號(hào)在幾秒鐘后發(fā)生變化,視為數(shù)據(jù)庫(kù)啟動(dòng)異常,需要停掉數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)安裝腳本輸出啟動(dòng)異常的日志,并退出安裝。

    實(shí)踐經(jīng)過和結(jié)果:

    本文選擇Linux SUSEll操作系統(tǒng)作為測(cè)試環(huán)境。將m-stall_mysql.sh拷貝到測(cè)試環(huán)境上,通過執(zhí)行./sh install_mysql.sh命令執(zhí)行安裝腳本。

    4 結(jié)論對(duì)比

    通過實(shí)際安裝調(diào)測(cè)發(fā)現(xiàn),執(zhí)行自動(dòng)化安裝腳本的時(shí)間基本維持在30秒鐘左右,大大縮短了手動(dòng)安裝MySQL的時(shí)間,實(shí)驗(yàn)結(jié)果表明自動(dòng)化安裝腳本提高了安裝效率,并且具有可復(fù)制性,可以反復(fù)多次在同一環(huán)境下執(zhí)行。同樣的方法一樣適用于MySQL數(shù)據(jù)的升級(jí),升級(jí)的本質(zhì)是下載目標(biāo)版本的MySQL安裝包,解壓并覆蓋當(dāng)前版本的可執(zhí)行文件,配置文件。需要注意的是,如果是現(xiàn)網(wǎng)數(shù)據(jù)庫(kù)版本的升級(jí),需要保留原數(shù)據(jù)文件,配置文件以及日志文件,因此升級(jí)數(shù)據(jù)庫(kù)的腳步比安裝腳本要增加備份和還原配置的步驟。

    總之,基于shell腳本進(jìn)行部署安裝和升級(jí)MySQL是自動(dòng)化測(cè)試的重要工具,穩(wěn)定高效的腳本文件可以極大地幫助提高工作效率,是自動(dòng)化運(yùn)維的重要研究方向。

    參考文獻(xiàn):

    [1]閆峻函.基于Shell腳本Solaris操作系統(tǒng)遠(yuǎn)程管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2016.

    [2]韓璐.在UNIX系統(tǒng)下用shell編程實(shí)現(xiàn)對(duì)文件的操作[J].中國(guó)科技信息,2006(13):131-132.

    [3](美)[D.梅迪納茨]David,Medinets..UNIX Shell編程工具[M].北京:機(jī)械工業(yè)出版社,2000.

    [4]唐華.Linux操作系統(tǒng)高級(jí)教程[M].北京:電子工業(yè)出版社,2008.

    【通聯(lián)編輯:光文玲】

    猜你喜歡
    升級(jí)
    小投入,大升級(jí) Polk Audio Monitor XT系列
    幸福,在“家門口”升級(jí)
    金橋(2020年12期)2020-04-13 05:51:14
    回暖與升級(jí)
    充電樁亂戰(zhàn)升級(jí)
    能源(2016年10期)2016-02-28 11:33:31
    第九章 升級(jí)!我的寵物
    自主閱讀,快樂升級(jí)
    连山| 西丰县| 包头市| 四会市| 鹤庆县| 西丰县| 荥阳市| 台州市| 观塘区| 桦甸市| 内黄县| 金秀| 溧阳市| 峨眉山市| 交口县| 新昌县| 十堰市| 锦屏县| 靖边县| 乐东| 冕宁县| 红原县| 黄龙县| 通道| 双桥区| 邛崃市| 永城市| 阜宁县| 黑龙江省| 伊通| 乡宁县| 双鸭山市| 同江市| 灵川县| 新巴尔虎左旗| 金华市| 镇江市| 呼图壁县| 景谷| 马尔康县| 岫岩|