1. 程式人生 > >Mac MySQL 資料庫配置(關係型資料庫管理系統)

Mac MySQL 資料庫配置(關係型資料庫管理系統)

前言

  • MySQL 關係型資料庫管理系統。

1、配置準備工作

  • 1)配置資料庫準備工作

    • 下載相關軟體

      • mysql-5.7.21-1-macos10.13-x86_64.dmg

      • mysql-workbench-community-6.3.10-macos-x86_64.dmg

      • MySQL v5.7.21 for Mac下載地址,密碼:v6j7。

      • MySQL v5.7.23 for Mac下載地址,密碼:jw5a。

  • 2)配置資料庫注意事項

    • 提前下載好相關軟體,且安裝目錄最好安裝在全英文路徑下。如果路徑有中文名,那麼可能會出現一些莫名其妙的問題。
  • 3)示例配置環境

    • macOS 10.11.6
    • macOS 10.13.3

2、下載安裝 MySQL

  • 下載安裝 MySQL 可以按照下面步驟使用二進位制 PGK 包安裝,或者用 Homebrew 使用以下的命令安裝。

    # 安裝 MySQL
    $ brew install mysql
    

2.1 下載 MySQL

  • 訪問 MySQL 官網,然後在頁面中會看到 “MySQL Community Server” 下方有一個 “DOWNLOAD” 點選。

  • 進入 MySQL 的下載介面,如果用的是 Mac OS 來訪問的話那麼就會預設為你選好了 Mac OS X 平臺,而下面羅列的都是在 Mac OS 上能用的 MySQL 的版本,如果是用的其他平臺,在 “Select Platform” 選項的下拉列表中選一下就好了。

  • 在 Mac OS 上的 MySQL 的版本很多,其中有按平臺來的,比如 10.5/10.6 等平臺,然後有 32 位的和 64 位的,這個你按照自己系統的情況來進行選擇,然後就是檔案的字尾名有 .tar.gz 的和 .dmg 的,這裡我選擇的是 .dmg 的。點選右側的 Download 進行下載。

  • 然後會跳轉到另外一個介面,這個介面是提示你需不需要註冊的,直接選擇最下面的 “No thanks, just start my download.”,然後進行下載就 OK 了。

2.2 安裝 MySQL

  • MySQL server 安裝在目錄 /usr/local/mysql 下面,子目錄 /usr/local/mysql/bin

    中包含了 MySQL server 的可執行指令碼命令,同時,MySQL server 安裝了一個配置程式,方便我們開啟/關閉 MySQL 資料庫伺服器。

  • 開啟 MySQL 的安裝包,雙擊 pkg 檔案安裝。

  • 一路向下,記得儲存最後彈出框中的密碼,它是你的 MySQL root 賬號的密碼。

  • 對於 MySQL 8 及以上的版本,在安裝過程中不要選擇使用強使用者密碼(Use Strong Password Encryption),否則可能都是其它資料庫管理軟體無法建立連線,要選擇使用舊的的密碼方式(Use Legacy Password Encryption)。

  • 安裝完成後在系統偏好設定的最下邊會出現 MySQL 圖示。

  • 點選圖示,進入 MySQL 偏好設定,開啟 MySQL Server 服務。

2.3 新增系統環境變數

  • 如果使用終端命令使用 MySQL 資料庫,需要將其新增到系統環境變數中。

  • 1)檢視是否已添加了系統環境變數中

    • 在終端中輸入以下命令。

      # 登入資料庫,-u 表示登入的使用者名稱,-p 表示登入的密碼
      $ mysql -u[使用者名稱] -p
      $ mysql -uroot -p
      
    • 如果沒有設定環境變數,終端會輸出如下資訊,這說明我們還需要將 MySQL 加入系統環境變數。

      -bash: mysql: command not found
      
  • 2)檢視 MySQL 安裝路徑

    • 在終端輸入以下命令。

      $ cd /usr/local/mysql/bin && ls
      
    • 檢視此目錄下是否有 MySQL,如下圖所示。

  • 3)新增系統環境變數

    • 在終端輸入以下命令,開啟系統環境變數配置檔案。

      # 開啟環境變數配置檔案
      $ vim ~/.bash_profile
      
    • 在該檔案中新增 mysql/bin 的目錄,如下圖所示。

      export PATH=$PATH:/usr/local/mysql/bin
      export PATH=$PATH:/usr/local/mysql/support-files
      
      • macOS 10.13.3 截圖

      • macOS 10.12 截圖

    • 新增完成後,按 esc,然後輸入 :wq 儲存退出。

    • 最後在終端輸入以下命令,使配置生效。

      # 使環境變數配置生效
      $ source ~/.bash_profile
      
  • 4)登入 MySQL

    • 現在你就可以通過 mysql -uroot -p 登入 MySQL 了,登入過程中會讓你輸入 MySQL root 使用者的密碼。

    • 開啟一個新的終端,在終端中輸入以下命令,登入 MySQL。

      # 登入資料庫,-u 表示登入的使用者名稱,-p 表示登入的密碼
      $ mysql -u[使用者名稱] -p
      $ mysql -uroot -p
      
    • 輸入密碼登入成功後終端會輸出如下資訊。

      Welcome to the MySQL monitor. Commands end with ; or \g.
      Your MySQL connection id is 125
      Server version: 5.7.17 MySQL Community Server (GPL)
      Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
          
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      
  • 5)退出 MySQL

    • 在終端輸入以下命令,退出 MySQL。

      # 退出 MySQL
      > exit
      

3、修改 root 賬戶密碼

  • 1)登入 MySQL

    • 在終端中輸入以下命令,登入 MySQL。

      # 登入資料庫,-u 表示登入的使用者名稱,-p 表示登入的密碼
      $ mysql -u[使用者名稱] -p
      $ mysql -uroot -p
      
    • 輸入原 root 賬戶密碼,登入成功後終端會輸出以下資訊。

      Welcome to the MySQL monitor. Commands end with ; or \g.
      Your MySQL connection id is 125
      Server version: 5.7.17 MySQL Community Server (GPL)
      Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      
    • 如果終端輸出以下提示,需按照本文中介紹將 mysql 新增到系統環境變數。

      -bash: mysql: command not found
      
  • 2)修改密碼

    • 登入成功後,可以通過下面的命令修改密碼。

      # SET PASSWORD FOR '使用者名稱'@'伺服器地址' = PASSWORD('新的密碼');
      > SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新的密碼');
      
  • 3)退出 MySQL

    • 在終端輸入以下命令,退出 MySQL。

      # 退出 MySQL
      > exit
      

4、重置 root 賬戶密碼

  • 1)關閉 MySQL Server 服務

    • 蘋果 => 系統偏好設定 => 最下邊點 MySQL,在彈出頁面中關閉 MySQL Server 服務(點選 Stop MySQL Server)。
  • 2)登入管理員許可權

    • 在終端輸入以下命令,切換到 MySQL 安裝路徑。

      # 蘋果系統下 MySQL server 的安裝路徑
      $ cd /usr/local/mysql/bin/
      
    • 回車後,在終端輸入以下命令,登入管理員許可權。

      # 登入管理員許可權
      $ sudo su
      
    • 輸入 Mac 管理員密碼,回車後,終端會輸出以下資訊。

      sh-3.2#
      
  • 3)禁止 MySQL 驗證功能

    • 在終端輸入以下命令,禁止 MySQL 驗證功能。

      # 禁止 MySQL 驗證功能
      ./mysqld_safe --skip-grant-tables &
      
    • 回車後 MySQL 會自動重啟(偏好設定中 MySQL 的狀態會變成 running),終端會輸出以下資訊。

      [1] 14941
      sh-3.2# Logging to '/usr/local/mysql-5.7.21-macos10.13-x86_64/data/bogon.err'.
      2018-02-23T09:15:46.6NZ mysqld_safe Starting mysqld daemon with databases 
      from /usr/local/mysql-5.7.21-macos10.13-x86_64/data
      
  • 4)登入 MySQL

    • 在終端中輸入以下命令,登入 MySQL。

      # 登入 MySQL
      ./mysql
      
    • 回車後,終端會輸出以下資訊。

      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 207
      Server version: 5.7.21 MySQL Community Server (GPL)
      
      Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
      
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      		
      mysql>
      
  • 5)重置 MySQL 許可權

    • 在終端輸入以下命令,重置 MySQL 許可權。

      > FLUSH PRIVILEGES;
      
    • 回車後,終端會輸出以下資訊。

      Query OK, 0 rows affected (0.03 sec)
      
  • 6)設定新的密碼

    • 在終端輸入以下命令,設定新的密碼。

      # SET PASSWORD FOR '使用者名稱'@'伺服器地址' = PASSWORD('新的密碼');
      > SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新的密碼');
      
    • 回車後,終端會輸出以下資訊。

      Query OK, 0 rows affected, 1 warning (0.01 sec)
      
  • 7)退出 MySQL

    • 在終端輸入以下命令,退出 MySQL。

      # 退出 MySQL
      > exit
      
    • 在終端輸入以下命令,退出管理員許可權。

      # 退出管理員許可權
      exit
      
    • 以上幾步完成後密碼就修改成功了,現在就可以用新設定的密碼去登陸 MySQL 了。

5、刪除匿名使用者

  • 很多 MySQL 程式都會帶有匿名登入的功能。在剛剛安裝完 MySQL 之後,就能夠登入資料庫啦。這對於平時使用 MySQL 來說也基本沒有什麼,可是假設我們想部署資料庫的時候,這樣的登入方式是絕對不能存在的。

  • 或者在登入時如果提示以下資訊,原因是 MySQL 中存在一個匿名使用者,如果我們不刪除匿名使用者,即使使用其他使用者登入,都會自動跳轉使用匿名使用者登入。

    Access denied for user ''@'localhost' to database 'mysql'
    
  • 解決方法如下。

  • 1)匿名登入資料庫

    • 在終端輸入以下命令,匿名登入資料庫。

      # 匿名登入資料庫
      $ mysql -u root -p
      
    • 輸入密碼回車後,終端會輸出以下資訊。

      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 952
      Server version: 5.7.21 MySQL Community Server (GPL)
      
      Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
      
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      
      mysql> 
      
  • 2)切換資料庫

    • 然後切換資料庫,進入我們須要操作的資料庫 MySQL。

      # 切換資料庫
      > use mysql
      
    • 回車後,終端會輸出以下資訊。

      Reading table information for completion of table and column names
      You can turn off this feature to get a quicker startup with -A
      
      Database changed
      
  • 3)檢視資料庫使用者

    • 刪除之前我們先檢視一下資料庫的使用者表,看看使用者的存在情況

      # 檢視資料庫使用者
      > select user, host from user;
      
    • 回車後,終端會輸出以下資訊。

      +------+-----------------------+
      | user | host                  |
      +------+-----------------------+
      | root | 127.0.0.1             |
      |      | localhost             |
      | root | localhost             |
      |      | localhost.localdomain |
      | root | localhost.localdomain |
      +------+-----------------------+
      5 rows in set (0.00 sec)
      
    • 我們看到啦,在 user 這一列有的行是空的,這就是那個匿名使用者。

  • 4)刪除匿名使用者

    • 在終端輸入以下命令,刪除匿名使用者。

      # 刪除指定的資料庫使用者
      > delete from user where user='';
      
    • 回車後,終端會輸出以下資訊。

      Query OK, 2 rows affected (0.00 sec)
      
    • 此時執行的狀態顯示我們刪除了兩行資料,然後執行一邊查詢命令,確認一下是不是真的刪除成功。

      # 檢視資料庫使用者
      > select user, host from user;
      
    • 回車後,終端會輸出以下資訊,已經成功刪除啦。

      +------+-----------------------+
      | user | host                  |
      +------+-----------------------+
      | root | 127.0.0.1             |
      | root | localhost             |
      | root | localhost.localdomain |
      +------+-----------------------+
      3 rows in set (0.00 sec)
      

6、解除安裝 MySQL

  • Mac 下 MySQL 的 dmg 格式安裝內有安裝檔案,卻沒有解除安裝檔案,如果要解除安裝 MySQL,需要手動去刪。

  • 先在 MySQL 的偏好設定中,停止所有 MySQL Server 服務。

  • 然後在終端中輸入以下命令。

    sudo rm /usr/local/mysql
    	
    sudo rm -rf /usr/local/mysql*
    sudo rm -rf /Library/StartupItems/MySQLCOM
    sudo rm -rf /Library/PreferencePanes/My*
    	
    vim /etc/hostconfig (and removed the line MYSQLCOM=-YES-)
    	
    rm -rf ~/Library/PreferencePanes/My*
    	
    sudo rm -rf /Library/Receipts/mysql*
    sudo rm -rf /Library/Receipts/MySQL*
    sudo rm -rf /var/db/receipts/com.mysql.*