Mac MySQL 資料庫配置(關係型資料庫管理系統)
前言
- MySQL 關係型資料庫管理系統。
1、配置準備工作
-
1)配置資料庫準備工作
-
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 的安裝包,雙擊 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.*