熱線電話:13121318867

登錄
2023-09-08 閱讀量: 4878
CDA學習 Mysql MAC版設置文件默認安全路徑

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";

image.png


因此我們需要在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下載等里面,)


#04. 然后按esc退出編輯模式,再輸入:wq保存并退出。

#05. 然后在mac的打開 系統偏好設置,打開mysql,選Configuration,勾選Configuration File,點select,按照這個順序"/usr/local/mysql/etc/my.cnf"找到剛添加my.cnf的文件夾,然后點擊右下角的Apply

至此my.cnf文件寫完了


#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

image.png

圖中 圓圈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 ,執行

image.png



##4 執行后會直接去到文件的第63行,在第63行有一個mysqld_pid_file_path= ,按鍵盤上的字母i 進入編輯模式

然后在等號后面放入第1步找到的pid-file路徑


image.png


在等號后面放入第1步找到的pid-file路徑 ,放入后,如下圖中所示:


image.png


##5 然后按esc退出編輯模式,然后:wq保存修改并退出


##6 然后重新執行"重啟mysql server 服務器" 的操作,執行成功 ,可以看到有 success, 重啟mysql.server成功

image.png


補充描述, 有同學做了上面的操作還有報錯提示,如下圖:
可能是有多個PID進程
8d1a4fb232f5a3f8c4919d78fba0105.jpg


處理方法:
在終端執行代碼如下,殺掉所有mysql進程:
kill $(pgrep mysql)然后在重新執行"重啟mysql server 服務器" 的操作







0.0000
0
關注作者
收藏
評論(0)

發表評論

暫無數據
推薦帖子
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码