MySQL™ 參考手冊(在macOS上安裝MySQL)

在macOS上安裝MySQL

有關MySQL服務器支持的macOS版本列表,請參閱https://www.mysql.com/support...html

用於macOS的MySQL有多種不一樣的形式:mysql

  • 原生程序包安裝程序,它使用原生macOS安裝程序(DMG)引導你完成MySQL的安裝,你能夠將程序包安裝程序與macOS一塊兒使用,用於執行安裝的用戶必須具備管理員權限。
  • 壓縮的TAR存檔,它使用使用Unix targzip命令打包的文件,要使用此方法,你須要打開終端窗口,使用此方法不須要管理員權限,由於你可使用此方法在任何地方安裝MySQL服務器。

在macOS上安裝MySQL的通常注意事項

你應該記住如下問題和注意事項:sql

  • 其餘MySQL安裝:安裝過程不認可包管理器(如Homebrew)的MySQL安裝,安裝和升級過程適用於oracle提供的MySQL包,若是存在其餘安裝,請考慮在執行此安裝程序以前中止它們以免端口衝突。

    Homebrew:例如,若是你使用Homebrew將MySQL Server安裝到其默認位置,則MySQL安裝程序將安裝到其餘位置,而且不會從Homebrew升級版本。在這種狀況下,你最終會遇到多個MySQL安裝,默認狀況下會嘗試使用相同的端口。在運行此安裝程序以前中止其餘MySQL Server實例,例如執行brew services stop mysql以中止Homebrew的MySQL服務。shell

  • Launchd:安裝了一個更改MySQL配置選項的launchd守護程序,若是須要,請考慮編輯它,有關其餘信息,請參閱下面的文檔。此外,macOS 10.10刪除了啓動項支持,支持launchd守護進程,macOS System Preferences下的可選MySQL首選項窗格使用launchd守護程序。
  • 用戶:你可能須要(或想要)建立特定的mysql用戶來擁有MySQL目錄和數據,你能夠經過Directory Utility執行此操做,而且mysql用戶應該已經存在。要在單用戶模式下使用,_mysql的條目(注意下劃線前綴)應該已存在於系統/etc/passwd文件中。
  • 數據:由於MySQL包安裝程序將MySQL內容安裝到版本和平臺特定目錄中,因此你可使用它來在版本之間升級和遷移數據庫,你須要將數據目錄從舊版本複製到新版本,或者指定備用datadir值以設置數據目錄的位置,默認狀況下,MySQL目錄安裝在/usr/local/下。
  • 別名:你可能但願在shell的資源文件中添加別名,以便更輕鬆地從命令行訪問經常使用程序,如mysqlmysqladminbash的語法是:數據庫

    alias mysql=/usr/local/mysql/bin/mysql
    alias mysqladmin=/usr/local/mysql/bin/mysqladmin

    對於tcsh,請使用:bash

    alias mysql /usr/local/mysql/bin/mysql
    alias mysqladmin /usr/local/mysql/bin/mysqladmin

    更好的是,將/usr/local/mysql/bin添加到PATH環境變量中,你能夠經過修改shell的相應啓動文件來完成此操做。服務器

  • 刪除:複製先前安裝的MySQL數據庫文件併成功啓動新服務器後,應考慮刪除舊的安裝文件以節省磁盤空間,此外,你還應刪除位於/Library/Receipts/mysql-VERSION.pkg中的舊版本的Package Receipt目錄。
  • 遺留:在OS X 10.7以前,MySQL服務器與OS X Server捆綁在一塊兒。

使用原生軟件包在macOS上安裝MySQL

該軟件包位於磁盤映像(.dmg)文件中,你首先須要經過在Finder中雙擊其圖標來裝載該文件,而後它應該掛載映像並顯示其內容。oracle

在繼續安裝以前,請確保經過使用MySQL Manager應用程序(在macOS Server上)、首選項窗格或在命令行上使用 mysqladmin shutdown來中止全部正在運行的MySQL服務器實例。

要使用軟件包安裝程序安裝MySQL:app

  1. 下載包含MySQL軟件包安裝程序的磁盤映像(.dmg)文件(此處提供社區版本),雙擊該文件以裝入磁盤映像並查看其內容。

    雙擊磁盤中的MySQL安裝程序包,它根據你下載的MySQL版本命名,例如,對於MySQL服務器8.0.19,它可能被命名爲mysql-8.0.19-osx-10.13-x86_64.pkgsocket

  2. 初始嚮導介紹屏幕引用要安裝的MySQL服務器版本,單擊Continue開始安裝。

    MySQL社區版顯示了相關GNU通用公共許可證的副本,單擊Continue,而後單擊Agree繼續。

  3. Installation Type頁面中,你能夠單擊Install以使用全部默認值執行安裝嚮導,單擊Customize以更改要安裝的組件(MySQL服務器、MySQL測試、首選項窗格、啓動支持 — 默認狀況下啓用除MySQL測試以外的全部組件)。

    雖然能夠看到Change Install Location選項,但沒法更改安裝位置。
    MySQL軟件包安裝程序嚮導:安裝類型
    mac-installer-installation-type-standard.png
    MySQL包安裝程序嚮導:自定義
    mac-installer-installation-type-customize.png

  4. 單擊Install以安裝MySQL Server,若是升級當前的MySQL Server安裝,安裝過程將在此處結束,不然請按照嚮導的新MySQL服務器安裝的其餘配置步驟進行操做。
  5. 成功安裝新的MySQL服務器後,經過選擇密碼的默認加密類型、定義root密碼以及啓動時啓動(或禁用)MySQL服務器來完成配置步驟。
  6. 默認的MySQL 8.0密碼機制是caching_sha2_password(強),此步驟容許你將其更改成mysql_native_password(遺留)。

    mac-installer-configuration-password-type.png

    選擇舊密碼機制會更改生成的launchd文件以在ProgramArguments下設置--default_authentication_plugin=mysql_native_password。選擇強密碼加密不會設置--default_authentication_plugin,由於使用了默認的MySQL Server值,即caching_sha2_password

  7. 爲root用戶定義密碼,並在配置步驟完成後切​​換MySQL Server是否應該啓動。

    mac-installer-configuration-password-define.png

  8. Summary是最後一步,並引用了成功且完整的MySQL Server安裝,Close嚮導。

    mac-installer-summary.png

MySQL服務器現已安裝,若是你選擇不啓動MySQL,則使用命令行中的launchctl或使用MySQL首選項窗格單擊Start啓動MySQL,使用MySQL Preference Pane或launchd將MySQL配置爲在啓動時自動啓動。

使用軟件包安裝程序進行安裝時,文件將安裝到/usr/local中與安裝版本和平臺名稱相匹配的目錄中。例如,安裝程序文件mysql-8.0.19-osx10.13-x86_64.dmg將MySQL安裝到/usr/local/mysql-8.0.19-osx10.13-x86_64/,並帶有符號連接到/usr/local/mysql,下表顯示了此MySQL安裝目錄的佈局。

目錄 目錄的內容
bin mysqld服務器、客戶端和實用程序
data 日誌文件、數據庫,其中/usr/local/mysql/data/mysqld.local.err是默認錯誤日誌
docs 幫助文檔,如發行說明和構建信息
include 包含(頭)文件
lib
man Unix手冊頁
mysql-test MySQL測試套件(使用安裝程序包(DMG)時,在安裝過程當中默認禁用'MySQL Test')
share 其餘支持文件,包括錯誤消息、示例配置文件、用於數據庫安裝的SQL
support-files 腳本和示例配置文件
/tmp/mysql.sock MySQL Unix socket的位置

安裝和使用MySQL啓動守護程序

macOS使用啓動守護程序自動啓動、中止和管理MySQL等進程和應用程序。

默認狀況下,macOS上的安裝包(DMG)會安裝名爲/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist的launchd文件,其中包含相似於如下內容的plist定義:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
            <string>--early-plugin-load=keyring_file=keyring_file.so</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>
一些用戶報告說,添加plist DOCTYPE聲明會致使launchd操做失敗,儘管它經過了lint檢查,懷疑這是一個copy-n-paste錯誤,包含上述代碼段的文件的md5校驗和是 d925f05f6d1b6ee5ce5451b596d6baed

要啓用launchd服務,你能夠:

  • 打開macOS系統首選項並選擇MySQL首選項面板,而後執行Start MySQL Server
    mac-installer-preference-pane-location.png
    Instances頁面包含一個啓動或中止MySQL的選項,Initialize Database從新建立data/目錄,Uninstall卸載MySQL Server以及可選的MySQL首選項面板和launchd信息。
    mac-installer-preference-pane-instances.png
  • 或者,手動加載launchd文件。

    shell> cd /Library/LaunchDaemons
    shell> sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
  • 要將MySQL配置爲在啓動時自動啓動,你能夠:

    shell> sudo launchctl load -w com.oracle.oss.mysql.mysqld.plist
    升級MySQL服務器時,launchd安裝過程將刪除使用MySQL服務器5.7.7及更低版本安裝的舊啓動項,此外,升級將替換名爲 com.oracle.oss.mysql.mysqld.plist的現有launchd文件。

額外啓動相關信息:

  • plist條目覆蓋my.cnf條目,由於它們做爲命令行參數傳入。
  • ProgramArguments部分定義了傳遞給程序的命令行選項,在這種狀況下是mysqld二進制文件。
  • 默認的plist定義是在考慮不太複雜的用例的狀況下編寫的,對於更復雜的設置,你可能但願刪除一些參數,而是依賴於MySQL配置文件,例如my.cnf
  • 若是編輯plist文件,則在從新安裝或升級MySQL時取消選中安裝程序選項,不然,你編輯的plist文件將被覆蓋,而且全部編輯都將丟失。

由於默認的plist定義定義了幾個ProgramArguments,因此你能夠刪除大多數這些參數,而是依賴你的my.cnf MySQL配置文件來定義它們。例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
            <string>--early-plugin-load=keyring_file=keyring_file.so</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

在這種狀況下,basedirdatadirplugin_dirlog_errorpid_filekeyring_file_data--early-plugin-load選項已從默認的plist ProgramArguments定義中刪除,你可能已經在my.cnf中定義了該定義。

安裝和使用MySQL首選項窗格

MySQL安裝包包含一個MySQL首選項窗格,使你能夠在啓動MySQL安裝期間啓動、中止和控制自動啓動。

此首選項窗格默認安裝,並列在系統的「系統偏好設置」窗口下。

mac-installer-preference-pane-location.png

MySQL首選項窗格安裝有安裝MySQL Server的相同DMG文件,一般它與MySQL Server一塊兒安裝,但它也能夠本身安裝。

要安裝MySQL首選項窗格:

  1. 完成安裝MySQL服務器的過程。
  2. 單擊Installation Type步驟中的CustomizePreference Pane選項列在那裏並默認啓用,確保沒有取消選擇,能夠選擇或選擇其餘選項,例如MySQL Server。

    mac-installer-installation-type-customize.png

  3. 完成安裝過程。

    MySQL首選項窗格僅啓動和中止從已安裝在默認位置的MySQL軟件包安裝中安裝的MySQL安裝。

安裝MySQL首選項窗格後,你可使用此首選項窗格控制MySQL服務器實例。

Instances頁面包含啓動和中止MySQL的選項,Initialize Database從新建立data/目錄,Uninstall卸載MySQL Server以及可選的MySQL首選項面板和launchd信息。

mac-installer-preference-pane-instances.png

Configuration頁面顯示MySQL Server選項,包括MySQL配置文件的路徑。

mac-installer-preference-pane-configuration.png

MySQL首選項窗格顯示MySQL服務器的當前狀態,若是服務器未運行,則顯示stopped(紅色),若是服務器running,則運行(綠色),首選項窗格還顯示MySQL服務器是否已設置爲自動啓動的當前設置。

相關文章
相關標籤/搜索