mysql函数为什么需要禁用

mysql函数为什么需要禁用,第1张

主要介绍如下几个方面的设置:

1.load data infile

?View Code MYSQL

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'

[REPLACE | IGNORE]

INTO TABLE tbl_name

[FIELDS

[TERMINATED BY 'string']

[[OPTIONALLY] ENCLOSED BY 'char']

[ESCAPED BY 'char' ]

]

[LINES

[STARTING BY 'string']

[TERMINATED BY 'string']

]

[IGNORE number LINES]

[(col_name_or_user_var,...)]

[SET col_name = expr,...)]

LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并装入一个表中。

这是一个很危险的内置函数,所以一般建议禁用掉(除非程序有用到本地文件)

通过在my.cnf中设置

1

local-infile=0|1 0表示禁用,1表示开启

2.load_file函数

这个函数和上面的load data 函数类似,都是读取本地文件,对于load_file(filename)函数的使用有如下的条件限制:

读取文件并将这一文件按照字符串的格式返回。 文件的位置必须在服务器上,你必须为文件制定路径全名,而且你还必须拥有FILE 特许权。文件必须可读取,文件容量必须小于 max_allowed_packet字节。

若文件不存在,或因不满足上述条件而不能被读取, 则函数返回值为 NULL。

这个主要通过mysql授权来禁用这个函数,收回用户的file权限

1

revoke file on *.* from 'user'@'IP'//或者不要授予用户的file权限

3.禁用drop命令

1

revoke drop on *.* from 'user'@'IP'

在php最上面写error_reporting(E_ALL &~E_DEPRECATED)忽略错误。

MySQL 是一种数据库。数据库定义了存储信息的结构。

在数据库中,存在着一些表。类似 HTML 表格,数据库表含有行、列以及单元。

在分类存储信息时,数据库非常有用。一个公司的数据库可能拥有这些表:"Employees", "Products", "Customers" 以及 "Orders"。

应用

MySQL

时,会遇到不能创建函数的情况。出现如下错误信息:

复制代码

代码如下:

ERROR

1418

:

This

function

has

none

of

DETERMINISTIC,

NO

SQL,

or

READS

SQL

DATA

in

its

declaration

and

binary

logging

is

enabled

(you

*might*

want

to

use

the

less

safe

log_bin_trust_function_creators

variable)

那是因为没有将功能开启。

开启MySQL函数功能:

复制代码

代码如下:

SET

GLOBAL

log_bin_trust_function_creators=1

关闭MySQL函数功能:

复制代码

代码如下:

SET

GLOBAL

log_bin_trust_function_creators=0

查看状态:

复制代码

代码如下:

show

variables

like

'%func%'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6098065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存