Mysql MAC版設置文件默認安全路徑
我們知道mysql把數據放到默認安全路徑后,可以做批量導入數據操作,在windows版 mysql 中有一個文件默認安全路徑,但是在MAC版mysql中沒有這個默認安全路徑,所以如果想在MAC版mysql做批量導入數據操作,我們需要手動設置文件默認安全路徑
MAC版本:12.0
MySQL版本:8.0.31
MAC版 MySQL安裝后用workbench執行如下命令查詢secure_file_priv的值時, 發現為NULL
當默認安全路徑 secure_file_priv的取值為null時, 代表無法做批量導入導出數據的操作
show variables like "secure_file_priv";
因此我們需要在my.cnf文件中修改secure_file_priv的值
但是MAC版的mysql中沒有my.cnf文件,因此需要我們自己手動創建my.cnf并在里面寫入secure_file_priv的值:
Mysql MAC版設置文件默認安全路徑 具體詳細步驟如下:
請在終端執行以下命令:
#01 創建ect文件夾
sudo mkdir /usr/local/mysql/etc
#02 創建my.cnf
sudo vi /usr/local/mysql/etc/my.cnf
#03 在my.cnf文件中添加如下內容:(用鍵盤輸入 i 進入可編輯模式后,把如下代碼中復制粘貼進去)
[client] default-character-set=utf8 [mysqld_safe] [mysqld] secure_file_priv="/usr/local/safeuploads" character-set-server=utf8mb4 #sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES' sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' [mysql] default-character-set=utf8mb4
(備注:我在上面的代碼中把安全路徑設置為 /usr/local/safeuploads,您可以換成別的,但不要設置在desktop桌面,documents文稿,download下載等里面,)
#06 然后在終端執行如下命令"重啟mysql server 服務器",出現sucess, 重啟成功 (備注,如果出現error報錯,跳到最下面的關于另一個問題)
sudo /usr/local/mysql-8.0.31-macos12.15-x86_64/support-files/mysql.server restart
(注意里面的mysql.server路徑 "/usr/local/mysql-8.0.21-macos10.15-x86_64/support-files/mysql.server" 改成你自己電腦的對應路徑,有可能你的數字部分跟我的不一樣)
#07 打開mysql workbench,執行命令"show variables like "%secture%""查看secure_file_priv的值,
"/usr/local/safeuploads"
show variables like "%secture%;
執行后,發現secure_file_priv的值是 "/usr/local/safeuploads", 完美的修改過來了!
接下來終于可以像windows版 mysql一樣,做批量導入數據的操作了
## 特別備注
如果執行批量導入數據命令時,報錯提示說 文件找不到 可能是mysql沒有權限讀取safeuploads這個安全路徑下的文件
#給予mysql可以訪問safeuploads這個mysql安全路徑下任何文件的權利, 請執行如下代碼命令:
chmod -R 755 /usr/local/safeuploads
###關于另一個問題:有的小伙伴在執行前面第6步重啟mysql server 服務器 ,
出現報錯提示 mysql server PID file could not be found 或者The server quit without updating PID file
解決方案如下:
##1 在終端執行如下代碼,查找pid-file文件的路徑位置 (注意代碼里有一個豎桿符號)
ps aux | grep mysqld
圖中 圓圈2所指的位置就是pid-file的路徑位置, 對, 就是pid-file等號后面那一坨: /usr/local/mysql/data/mysqld.local.pid
把pid-file路徑復制出來臨時放到記事本上記著,后面要用
##2. 然后打開mysql.server文件在里面添加pid-file的路徑位置(打開、編輯、保存的方法同創建my.cnf) 首先執行如下代碼:
sudo vi /usr/local/mysql-8.0.21-macos10.15-x86_64/support-files/mysql.server
(注意里面的mysql.server路徑 "/usr/local/mysql-8.0.21-macos10.15-x86_64/support-files/mysql.server" 改成你自己電腦的對應路徑,有可能你的跟我的不一樣)
##3. 然后輸入 :63 ,執行
##4 執行后會直接去到文件的第63行,在第63行有一個mysqld_pid_file_path= ,按鍵盤上的字母i 進入編輯模式
然后在等號后面放入第1步找到的pid-file路徑
在等號后面放入第1步找到的pid-file路徑 ,放入后,如下圖中所示:
##5 然后按esc退出編輯模式,然后:wq保存修改并退出
##6 然后重新執行"重啟mysql server 服務器" 的操作,執行成功 ,可以看到有 success, 重啟mysql.server成功
補充描述, 有同學做了上面的操作還有報錯提示,如下圖:
可能是有多個PID進程
處理方法:
在終端執行代碼如下,殺掉所有mysql進程:
kill $(pgrep mysql)然后在重新執行"重啟mysql server 服務器" 的操作








暫無數據