修訂號:v1.0.1mysql
2.2使用通用的二進制文件在unix/linux上安裝MySQLlinux
Oracle提供了一組MySQL的二進制發行版。對於許多平臺,它包括以tar壓縮文件形式的通用二進制發行版(文件是.tar. gz的擴展格式),以及針對特殊平臺的二進制包格式文件。sql
本章節涉及以tar壓縮的二進制文件發行版來安裝MySQL。對於其餘特殊平臺的包格式,請參閱其餘特殊平臺的章節。例如,對於Windows發行版,參閱章節2.3,「在Microsoft Windows上安裝MySQL」。shell
要得到MySQL,參閱章節2.1.2,「如何得到MySQL」。數據庫
MySQL的tar壓縮二進制文件發行版的命名格式爲mysql-VERSION-OS.tar.gz,版本號是一串數字(例如,5.7.21),對於你打算使用的發行版來講,os表明操做系統的類型(例如pc-linux-i686或winx64)。服務器
警告ide
若是你以前用本機的包管理系統安裝了MySQL,例如yum或apt-get,在使用本機二進制文件安裝的時候你可能遇到問題。請確保你以前安裝的MySQL已經完全地刪除(使用你的包管理系統),以及任何其餘的文件,例如你的舊版本的數據文件,也要刪除。你還應該檢查配置文件,例如/etc/my.cnf或/etc/mysql目錄而且刪除他們。佈局
關於使用官方MySQL安裝包替換第三方安裝包的信息,參閱有關Apt指南或Yum指南。測試
重要事項spa
MySQL依賴於libaio庫。若是不在本地安裝該庫,數據目錄初始化和後續服務器啓動步驟就會失敗。必要時,請使用適當的包管理器安裝它。例如,在基於yum安裝的系統上:
shell> yumsearch libaio # search for info
shell> yuminstall libaio # install library
或者,在基於APT安裝的系統上:
shell> apt-cachesearch libaio # search for info
shell> apt-getinstall libaio1 # install library
對於MySQL 5.7.19和更高版本:對非統一內存訪問(NUMA)的支持已經添加到通用的Linux構建中,它目前依賴於libnuma庫;若是這個庫沒有安裝在你的系統上,使用你的系統的包管理器來搜索並安裝它(參閱最後的項目關於一些示例命令)。
若是遇到問題須要提交一個錯誤文件,請使用章節1.7中的說明,「如何報告錯誤或問題」。
在Unix上安裝tar壓縮的二進制文件發行版時,請在你選擇的安裝位置解壓(一般是/usr/local/mysql)。這將建立下面表中所示的目錄。
表2.3通用Unix/Linux二進制包的MySQL安裝佈局
目錄 |
目錄的內容 |
bin |
mysqld服務,客戶端和實用程序 |
data |
日誌文件,數據 |
docs |
信息格式的MySQL手冊 |
man |
unix手冊頁 |
include |
包括(頭)文件 |
lib |
庫 |
share |
各類支持文件,包括錯誤消息,示例配置文件,用於數據庫安裝的SQL |
mysqld二進制文件的調試版本能夠用於mysqld-debug。要從源代碼發行版中編譯你本身的MySQL調試版本,使用適當的配置選項來啓動調試支持。參閱章節2.9,「從源代碼安裝MySQL」。
要安裝和使用MySQL二進制發行版,命令序列以下:
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> mkdir mysql-files
shell> chmod 750 mysql-files
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql # MySQL 5.7.5
shell> bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up
shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up
shell> chown -R root .
shell> chown -R mysql data mysql-files
shell> bin/mysqld_safe --user=mysql &
# Next command is optional下一個命令是可選的
shell> cp support-files/mysql.server /etc/init.d/mysql.server
注意事項
這個過程假設你擁有root(administrator)訪問系統的權限。或者,你能夠使用sudo(Linux)或pfexec(Solaris) 命令來前綴每一個命令。
注意事項
在MySQL 5.7.4以前,這個過程不會給MySQL賬戶分配密碼。爲此,請使用章節2.10.4中的說明,「保護初始MySQL賬戶」。
mysql-files目錄提供了一個方便的位置,用於secure_file_priv系統變量值,限制對特定目錄的導入/導出操做。參閱章節5.1.5,「服務器系統變量」。
在MySQL 5.7.5以前,mysql_install_db在基本安裝目錄中建立一個名爲my.cnf的默認選項文件。這個文件是由包含在發行包中命名my-default.cnf的模版建立的。詳細信息,參閱章節5.1.2「服務器配置默認值」。
注意事項
在MySQL 5.7.18的狀況下,my-default.cnf再也不被分發包所包含或安裝。
前面描述了二進制發行版的安裝,更詳細版本以下。
新建一個mysql用戶和組
若是你的系統尚未一個用於運行mysqld的用戶和組,那麼你可能須要建立一個。下面的命令添加了mysql組和mysql用戶。你可能想要調用其餘的用戶和組,而不是mysql。若是是這樣,在下面的指令中用適當的名稱替代。在不一樣的Unix版本上,useradd和groupadd的語法可能略有不一樣,或者它們可能有不一樣的名稱,例如adduser和addgroup。
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
注意事項
由於用戶只須要全部權功能,而不須要登陸功能,useradd命令使用-r和-s /bin/false選項來建立一個沒有到你服務器主機登陸權限的用戶。若是你的useradd不支持這些選項,請忽略他們。
獲取和拆包發行版
選擇你想要拆包發行版的目錄下,並將位置更改成這個目錄。此處舉例在/usr/local下面拆包發行版。這個指令假定你有權限在/usr/local中建立文件和目錄。若是該目錄受到保護,你必須以root用戶來執行安裝。
shell> cd /usr/local
在章節2.1.2,「如何得到MySQL」裏,使用這個指令得到一個發行版文件。對於給定的發行版,全部平臺的二進制發行版都是由相同的MySQL源發行版構建的。
在新建的安裝目錄裏拆包發行版。若是有z選項支持,tar可以解壓和拆包發行版:
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
tar命令建立了一個名爲mysql-VERSION-OS的目錄。
要從壓縮的tar文件二進制發行版中安裝MySQL,你的系統必需要有GNU gunzip來解壓分發版和一個合理的tar程序來拆包它。若是你的tar程序支持z選項,那麼它既能夠解壓也能夠拆包文件。
GNU tar的做用是衆所周知。在MySQL發行版中,一些操做系統提供的標準tar沒法拆包長文件名。你應該下載並安裝GNU tar,或者若是有的話,請使用GNUtar的預安裝版本。在GNU或自由軟件目錄中一般可用的是gnutar,gtar或tar,好比/usr/sfw/bin或/usr/local/bin。GNU tar能夠從http://www.gnu.org/software/tar/得到。
若是你的tar不支持z選項,使用gunzip解壓發行版和使用tar對他拆包。使用如下替代命令替換前面的tar命令,以解壓並提取分佈:
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
接下來,對tar建立的安裝目錄新建一個符號連接:
shell> ln -s full-path-to-mysql-VERSION-OS mysql
ln命令建立了到安裝目錄的符號連接。這使你能夠更容易地以/usr/local/mysql來訪問。當你在使用MySQL工做時,老是可以避免打印客戶端程序的路徑名,你能夠添加/usr/local/mysql/bin目錄到你的PATH變量裏:
shell> export PATH=$PATH:/usr/local/mysql/bin
執行安裝後的設置
安裝程序的其他部分包括設置發行版的全部權和訪問權限,初始化數據目錄,啓動MySQL服務器,和設置配置文件。相關說明,請參閱章節2.10,「安裝後的設置和測試」。