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