热线电话:13121318867

登录
2023-09-08 阅读量: 4261
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







0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子