各大主流Linux平臺(tái)MySQL部署指南
譯文【51CTO精選譯文】作為開(kāi)源計(jì)算領(lǐng)域的老牌尖兵,MySQL一直充當(dāng)著大量應(yīng)用程序的后端數(shù)據(jù)庫(kù)角色,從普通的網(wǎng)絡(luò)監(jiān)控框架到人氣鼎盛的Facebook皆在此列。第一次嘗試設(shè)置MySQL數(shù)據(jù)庫(kù)對(duì)于門(mén)外漢來(lái)說(shuō)似乎有些強(qiáng)人所難,但只要掌握幾項(xiàng)基本概念并加以引導(dǎo),大家將能夠很快建立起屬于自己的全新MySQL實(shí)例并投付運(yùn)行,最終實(shí)現(xiàn)應(yīng)用程序部署。
出于上手指南的基本定義,我們先假設(shè)各位讀者對(duì)于Linux系統(tǒng)平臺(tái)上的MySQL基本或者完全沒(méi)有知識(shí)儲(chǔ)備,然后把重點(diǎn)集中在如何對(duì)MySQL進(jìn)行安裝及配置,并進(jìn)一步嘗試將應(yīng)用程序與數(shù)據(jù)庫(kù)對(duì)接以保證其運(yùn)行。像數(shù)據(jù)庫(kù)編程及SQL語(yǔ)言等更深層次的MySQL話題則不在本文的討論范圍之內(nèi)。
安裝MySQL
首先,我們需要把MySQL安裝到自己的系統(tǒng)當(dāng)中。假設(shè)我們已經(jīng)擁有一臺(tái)僅安裝了Ubuntu、Fedora或者CentOS的服務(wù)器,接下來(lái)要做的則是利用軟件包安裝工具來(lái)獲取各種必要軟件并加以安裝。
請(qǐng)注意,除了MySQL主代碼我們可能還需要一些額外的軟件包,這樣才能確保大家的應(yīng)用程序正常運(yùn)作。舉例來(lái)說(shuō),如果大家希望讓MySQL與一款基于PHP的應(yīng)用程序協(xié)作,我們就需要安裝PHP MySQL軟件包以保證PHP能夠與MySQL服務(wù)器順利對(duì)話。
不過(guò)在開(kāi)始之前,我們還需要檢查操作系統(tǒng)在安裝過(guò)程中是否已經(jīng)同時(shí)完成了MySQL的安裝工作。在Fedora與CentOS系統(tǒng)中我們需要以root身份運(yùn)行下列命令:
# rpm -qa | grep mysql
在Ubuntu中我們則運(yùn)行以下命令:
$ sudo dpkg -l | grep mysql
如果輸出的結(jié)果中包含mysql-server軟件包,則MySQL已經(jīng)安裝完成。大家還需要確認(rèn)php-mysql等針對(duì)應(yīng)用程序的MySQL擴(kuò)展包也被正確安裝到位。
如果我們沒(méi)有在列出的結(jié)果中看到MySQL,那么在Fedora與CentOS中需要以root用戶(hù)身份使用YUM命令:
# yum install mysql-server php-mysql
經(jīng)過(guò)這一步,我們就完成了MySQL服務(wù)器、客戶(hù)端、必要軟件包與庫(kù)以及PHP MySQL擴(kuò)展等項(xiàng)目的安裝工作。
在Ubuntu方面,我們需要運(yùn)行以下命令:
$ sudo apt-get install mysql-server php5-mysql
經(jīng)過(guò)這一步,我們就完成了MySQL服務(wù)器與PHP MySQL擴(kuò)展包的安裝工作。另外,安裝程序會(huì)提示我們?yōu)镸ySQL root用戶(hù)設(shè)定密碼并在完成安裝前啟動(dòng)服務(wù)器。
在CentOS與Fedora方面,我們需要額外啟動(dòng)服務(wù)器并設(shè)定MySQL root用戶(hù)密碼:
$ su - # service mysqld start # mysqladmin password <newpassword>
大家只要把以上范例中的<newpassword>部分替換為想要設(shè)定的密碼即可。
現(xiàn)在,我們就可以開(kāi)始創(chuàng)建MySQL的功能性服務(wù)器實(shí)例了。大家能夠通過(guò)mysql客戶(hù)端登入服務(wù)器以進(jìn)行測(cè)試:
$ mysql -u root -p
現(xiàn)在系統(tǒng)會(huì)提示我們輸入設(shè)定好的MySQL root用戶(hù)密碼,屏幕上顯示的提示符為mysql>。這時(shí)我們開(kāi)始著手登錄到剛剛創(chuàng)建的實(shí)例中并準(zhǔn)備對(duì)其進(jìn)行配置。大家可以在mysql>提示符后輸入quit命令登出MySQL服務(wù)器。
在進(jìn)行下一步之前,我們需要保證MySQL正在對(duì)正確接口中的連接進(jìn)行偵聽(tīng)。在默認(rèn)情況下,Ubuntu會(huì)將MySQL設(shè)定為僅偵聽(tīng)本地主機(jī)地址。如果大家正在安裝的應(yīng)用程序與MySQL運(yùn)行在同一臺(tái)服務(wù)器上,這一設(shè)定倒不會(huì)引發(fā)什么問(wèn)題,因?yàn)槎吣軌蛟竭^(guò)本地主機(jī)接口進(jìn)行直接通信。然而一旦大家需要將這臺(tái)MySQL服務(wù)器與其它服務(wù)器相連,我們就需要取消該限制。請(qǐng)注意,這個(gè)問(wèn)題只發(fā)生在Ubuntu系統(tǒng)環(huán)境之下,F(xiàn)edora與CentOS在安裝過(guò)程中并不會(huì)限定本地主機(jī)地址。
為了實(shí)現(xiàn)Ubuntu系統(tǒng)環(huán)境下MySQL與其它系統(tǒng)的連通,我們需要對(duì)MySQL配置文件進(jìn)行編輯。該文件位置為/etc/mysql/my.cnf。我們可以通過(guò)nano編輯器進(jìn)行內(nèi)容變更。
$ sudo nano /etc/mysql/my.cnf
文件被打開(kāi)之后,大家向下滾動(dòng)屏幕直到尋獲bind-address內(nèi)容,然后在命令行開(kāi)頭插入#注釋符。這將會(huì)令MySQL在啟動(dòng)后忽略該配置行內(nèi)容,進(jìn)而允許服務(wù)器對(duì)來(lái)自所有IP地址及接口的連接進(jìn)行偵聽(tīng)。反之對(duì)應(yīng),其它主機(jī)也會(huì)同時(shí)獲得接入許可。
接Ctrl-O快捷鍵保存文件修改,再按Ctrl-X退出編輯器?,F(xiàn)在我們需要重新啟動(dòng)MySQL服務(wù)器:
$ sudo service mysql restart
現(xiàn)在我們已經(jīng)搞定一切準(zhǔn)備工作,可以正式對(duì)MySQL服務(wù)器進(jìn)行配置了。#p#
MySQL基礎(chǔ)配置
對(duì)于大多數(shù)應(yīng)用程序而言,并不需要對(duì)MySQL的配置做出太多變更。我們可以根據(jù)需要對(duì)my.cnf文件中的參數(shù)進(jìn)行調(diào)整,但具體調(diào)整方式取決于應(yīng)用程序?qū)τ贛ySQL的實(shí)際要求。如果有必要做出變更,應(yīng)用程序的安裝手冊(cè)中應(yīng)該會(huì)列出詳細(xì)條目。然而還有不少應(yīng)用程序需要我們手動(dòng)創(chuàng)建一套數(shù)據(jù)庫(kù),并為數(shù)據(jù)庫(kù)手動(dòng)分配用戶(hù)名與密碼,這樣才能讓?xiě)?yīng)用順利完成安裝。在Ubuntu、Fedora或者CentOS系統(tǒng)中,我們都可以通過(guò)以下命令實(shí)現(xiàn)上述要求:
$ mysql -u root -p
接下來(lái)輸入root密碼并登錄服務(wù)器實(shí)例。下面我們就開(kāi)始創(chuàng)建數(shù)據(jù)庫(kù):
mysql> CREATE DATABASE 'mydatabase';
請(qǐng)注意,mydatabase前后使用的是重點(diǎn)符而非單引號(hào)。這條命令將創(chuàng)建一套名為MyDatabase的數(shù)據(jù)庫(kù)。然后我們需要進(jìn)行權(quán)限分配。我們可以為某一位用戶(hù)分配受限權(quán)限,但大多數(shù)應(yīng)用程序都要求擁有全部權(quán)限,因此我們可以再額外添加一個(gè)用戶(hù)名并賦予其全部權(quán)限。
mysql> GRANT ALL PRIVILEGES on mydatabase.* TO myuser@localhost IDENTIFIED BY 'mypassword';
請(qǐng)注意,上述內(nèi)容中的mypassword前后為單引號(hào)。
這將賦予名為myuser的用戶(hù)全部權(quán)限,而密碼則為mypassword。不過(guò)如果二者是在本地系統(tǒng)中生成的,那么數(shù)據(jù)庫(kù)將只能識(shí)別由這套用戶(hù)名及密碼創(chuàng)建的連接。如果大家需要讓另一臺(tái)服務(wù)器與MySQL實(shí)例進(jìn)行通信,我們還得額外指定IP地址或者主機(jī)名稱(chēng)。
mysql> GRANT ALL PRIVILEGES on mydatabase.* TO myuser@192.168.100.5 IDENTIFIED BY 'mypassword';
經(jīng)過(guò)這一步,我們的數(shù)據(jù)庫(kù)將允許IP地址為192.168.100.5的系統(tǒng)進(jìn)行接入,用戶(hù)名為myuser、密碼則為mypassword。
現(xiàn)在大家可以利用MySQL客戶(hù)端嘗試新用戶(hù)能否正常接入。如果我們的測(cè)試在運(yùn)行著MySQL的服務(wù)器上進(jìn)行,那么需要輸入以下命令:
$ mysql -u myuser -p
如果我們要在另一套系統(tǒng)中進(jìn)行測(cè)試,則需要指定要連接的服務(wù)器對(duì)象:
$ mysql -u myuser -h <server IP address or name> -p
這里大家要在-h之后輸入MySQL服務(wù)器的實(shí)際IP地址或主機(jī)名稱(chēng)。
如果一切順利,那么我們應(yīng)該能夠正確登入實(shí)例,接下來(lái)要處理的就是應(yīng)用程序的安裝流程了。
大多數(shù)LAMP應(yīng)用都具備指定的MySQL安裝工具及引導(dǎo)說(shuō)明。有些應(yīng)用還擁有一款小型腳本,大家需要在命令行中加以運(yùn)行來(lái)提前創(chuàng)建數(shù)據(jù)庫(kù)架構(gòu)以啟動(dòng)應(yīng)用程序,不過(guò)也有一些采用基于Web的安裝工具。我們需要認(rèn)真閱讀應(yīng)用程序的安裝說(shuō)明,以確定需要對(duì)MySQL進(jìn)行哪些預(yù)先設(shè)置以完成應(yīng)用安裝。#p#
利用phpMyAdmin管理MySQL
完成應(yīng)用程序的安裝及測(cè)試工作之后,大家需要保留數(shù)據(jù)庫(kù)上的標(biāo)簽,也可能打算對(duì)數(shù)據(jù)庫(kù)進(jìn)行高級(jí)管理。在大多數(shù)情況下,使用基于Web的工具能夠簡(jiǎn)化數(shù)據(jù)庫(kù)管理流程,幫助那些對(duì)于MySQL管理工作不太熟悉的用戶(hù)順利搞定一切。
phpMyAdmin就是其中之一,它是一款基于PHP的MySQL管理工具。phpMyAdmin提供了一套簡(jiǎn)單易用的Web GUI,能夠執(zhí)行幾乎全部MySQL管理任務(wù)。在它的輔助下我們的生活將變得更加輕松愉快。
要在Fedora及CentOS上進(jìn)行安裝,我們需要以root身份運(yùn)行以下命令:
# yum install phpmyadmin
而在Ubuntu方面,我們需要運(yùn)行以下命令:
$ sudo apt-get install phpmyadmin
Ubuntu會(huì)提示處于使用狀態(tài)下的Web服務(wù)器,這樣它就可以自動(dòng)對(duì)其進(jìn)行配置。在大多數(shù)情況下,大家使用的都是Apache,所以除非各位確定自己要選擇lighttpd或者其它Web服務(wù)器,否則都應(yīng)按Apache進(jìn)行設(shè)置。另外,Ubuntu還會(huì)提示我們?yōu)閜hpMyAdmin進(jìn)行手動(dòng)或者自動(dòng)配置。除非大家習(xí)慣于進(jìn)行手動(dòng)配置,否則還是選擇安全穩(wěn)妥的自動(dòng)配置比較保險(xiǎn)——這一過(guò)程同樣需要輸入MySQL root密碼。在此之后,Ubuntu將完成全部配置工作,并重新啟動(dòng)服務(wù)器。不過(guò)由于服務(wù)器的初始創(chuàng)建情況有所不同,有時(shí)候我們還需要安裝Apache PHP模塊,具體方式如下所示:
$ sudo apt-get install libapache2-mod-php5
在Fedora與CentOS系統(tǒng)平臺(tái)上,我們需要做出一些細(xì)小改動(dòng)以便在遠(yuǎn)程系統(tǒng)端訪問(wèn)phpMyAdmin。這里要再次使用nano對(duì)phpMyAdmin配置文件加以編輯:
# nano /etc/httpd/conf.d/phpmyadmin.conf
打開(kāi)文件后,我們要在內(nèi)容最末加入一行“Allow from 127.0.0.1”,然后輸入允許訪問(wèn)的IP地址或范圍。舉例來(lái)說(shuō),如果我們輸入“Allow from 192.168.1”,就意味著允許192.168.1.0到192.168.1.24的所有子風(fēng)進(jìn)行連接。大家可以多輸入幾行命令,將自己可能需要接入的IP地址或子網(wǎng)全部涵蓋進(jìn)來(lái)。
內(nèi)容添加完成后,我們按下Ctrl-O保存文件并按下Ctrl-X退出編輯器?,F(xiàn)在重新啟動(dòng)Apache:
# service httpd restart
在Fedora與CentOS系統(tǒng)平臺(tái)上,我們還需要為phpMyAdmin配置添加Blowfish加密機(jī)制。這項(xiàng)工作也可以通過(guò)nano實(shí)現(xiàn)。
# nano /usr/share/phpMyAdmin/config.inc.php
(請(qǐng)注意:大家可以在phpMyAdmin目錄下只能找到一個(gè)名為config.sample.inc.php的文件,如果是這樣,請(qǐng)將其復(fù)制并保存為config.inc.php。)
找到如下內(nèi)容:
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
在兩個(gè)引號(hào)之間輸入加密內(nèi)容,如下所示:
$cfg['blowfish_secret'] = 'SDJkjshdkfjhsdf9**&^%^&%'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
這段加密內(nèi)容可以是任何字符,隨意性最好大一些。大家不再需要在其它任何地方重新輸入這段加密內(nèi)容,這僅僅屬于內(nèi)部需要。還是老辦法,Ctrl-O保存文件、Ctrl-X退出編輯器。
現(xiàn)在我們可以在服務(wù)器的Web瀏覽器上通過(guò)以下URL輸入phpMyAdmin了。
http://<server IP address>/phpmyadmin
#p#
接入phpMyAdmin
在接入phpMyAdmin之后,大家首先面對(duì)的是一個(gè)登錄對(duì)話框。在默認(rèn)情況下,phpMyAdmin會(huì)優(yōu)先與本地主機(jī)MySQL實(shí)例相連(而非遠(yuǎn)程實(shí)例),因此我們需要輸入的用戶(hù)名與密碼需要同root用戶(hù)或者擁有足夠權(quán)限的其它用戶(hù)設(shè)定相吻合。
登錄成功后,大家應(yīng)該會(huì)在屏幕左側(cè)看到數(shù)據(jù)庫(kù)列表,并在右側(cè)看到配置及管理選項(xiàng)。點(diǎn)擊左側(cè)的數(shù)據(jù)庫(kù)名稱(chēng)可以瀏覽數(shù)據(jù)庫(kù)內(nèi)容、添加或刪除表及數(shù)據(jù)、導(dǎo)入及輸出數(shù)據(jù)及數(shù)據(jù)庫(kù)架構(gòu),或者執(zhí)行其它各類(lèi)管理任務(wù)。請(qǐng)大家千萬(wàn)不要進(jìn)行任何自己不熟悉的操作,例如棄用(也就是刪除)數(shù)據(jù)庫(kù)等。
在上手phpMyAdmin之前,還有幾項(xiàng)提示值得大家關(guān)注。首先要說(shuō)的是如何對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,或者將其導(dǎo)出為本地系統(tǒng)中的文件。要實(shí)現(xiàn)這一目的,我們需要單擊屏幕左側(cè)的數(shù)據(jù)庫(kù)名稱(chēng)、單擊上方的“導(dǎo)出(Export)”選項(xiàng)。大多數(shù)情況下我們不需要對(duì)選項(xiàng)進(jìn)行任何變更,只消點(diǎn)擊文件選項(xiàng)底部緊挨著“另存為(Save as)”的按鈕、在必要時(shí)選擇壓縮格式,然后點(diǎn)擊“開(kāi)始(Go)”即可。這時(shí)整個(gè)數(shù)據(jù)庫(kù)都將被導(dǎo)出,并依選項(xiàng)進(jìn)行壓縮,最終通過(guò)瀏覽器下載到我們的計(jì)算機(jī)當(dāng)中。
另一項(xiàng)實(shí)用技巧則正好與導(dǎo)出相反,也就是將數(shù)據(jù)從備份文件導(dǎo)入到新數(shù)據(jù)庫(kù)中。首先,單擊左上角的Home圖標(biāo)創(chuàng)建新數(shù)據(jù)庫(kù),然后點(diǎn)擊“數(shù)據(jù)庫(kù)(Database)”選項(xiàng)。在接下來(lái)的文本框中輸入新數(shù)據(jù)庫(kù)的名稱(chēng),如果了解排序規(guī)則就按理解進(jìn)行選擇,然后點(diǎn)擊“創(chuàng)建(Create)”。簡(jiǎn)簡(jiǎn)單單,屏幕左側(cè)的列表中就多出一套新數(shù)據(jù)庫(kù)來(lái)。
現(xiàn)在點(diǎn)擊新數(shù)據(jù)庫(kù)名稱(chēng),點(diǎn)擊屏幕上方的“導(dǎo)入(Import)”按鈕。在彈出的瀏覽器窗口中選擇備份文件然后點(diǎn)擊Go。經(jīng)過(guò)此番操作,數(shù)據(jù)庫(kù)備份將被自動(dòng)導(dǎo)入新數(shù)據(jù)庫(kù)當(dāng)中。
大家還可以利用phpMyAdmin創(chuàng)建并管理數(shù)據(jù)庫(kù)用戶(hù)。點(diǎn)擊屏幕左上方的Home圖標(biāo)并選擇“權(quán)限(Privileges)”。在這里我們可以通過(guò)填寫(xiě)資料表添加新用戶(hù),并為其指定用戶(hù)名與密碼。當(dāng)然,這里創(chuàng)建出的用戶(hù)擁有全局權(quán)限;如果大家只想為某個(gè)特定數(shù)據(jù)庫(kù)設(shè)定用戶(hù),則取消所有復(fù)選框選項(xiàng)。用戶(hù)創(chuàng)建好之后,再次單擊權(quán)限選項(xiàng),然后點(diǎn)擊用戶(hù)名右側(cè)的“編輯(Edit)”圖標(biāo)。接下來(lái)在數(shù)據(jù)庫(kù)特定權(quán)限中選擇對(duì)應(yīng)數(shù)據(jù)庫(kù),并根據(jù)需要為用戶(hù)分配權(quán)限。大家可以通過(guò)“全選(Check All)”項(xiàng)目快速為用戶(hù)賦予全部權(quán)限,也可以在必要時(shí)進(jìn)行細(xì)節(jié)調(diào)整。
此外,phpMyAdmin也允許我們查看服務(wù)器運(yùn)行狀態(tài)。點(diǎn)擊屏幕左上方的Home圖標(biāo)、點(diǎn)擊“進(jìn)程(Processes)”來(lái)查看活動(dòng)MySQL連接與進(jìn)程,然后點(diǎn)擊“狀態(tài)(Status)”來(lái)進(jìn)一步掌握服務(wù)器流量、查詢(xún)及變量統(tǒng)計(jì)等信息列表。如果某些項(xiàng)目存在潛在問(wèn)題,phpMyAdmin會(huì)以紅色標(biāo)記出對(duì)應(yīng)的統(tǒng)計(jì)數(shù)據(jù)——例如打開(kāi)的表數(shù)量過(guò)大等。每個(gè)變量旁邊都配有該變更的簡(jiǎn)短描述,有時(shí)候還會(huì)對(duì)可能出現(xiàn)問(wèn)題的情況給出提示信息——例如表緩存值可能過(guò)小等。對(duì)于新人而言,這是一種了解MySQL服務(wù)器設(shè)置及其意義的絕佳方式。所有這些變量都可以在my.cnf文件中進(jìn)行調(diào)整,不過(guò)其中有些變量也可以在服務(wù)器運(yùn)行狀態(tài)下直接加以修改。
要想正確地進(jìn)行MySQL操作、調(diào)整、管理及維護(hù)等工作還要涉及到諸多細(xì)節(jié),但這篇指南已經(jīng)足以幫助初學(xué)者成功在操作系統(tǒng)上建立起屬于自己的功能性MySQL服務(wù)器了——連基于Web的GUI管理機(jī)制都能搞定。大家也許還需要更多信息來(lái)照管好自己的MySQL數(shù)據(jù)庫(kù)服務(wù)器,這里我留出MySQL參考手冊(cè)的鏈接,希望能助各位讀者朋友一臂之力(http://dev.mysql.com/doc/)。
原文鏈接:http://www.infoworld.com/d/applications/how-get-started-mysql-206984