在MySQL中如何使用LOAD_FILE()函数?(代码示例)-mysql教程-学派吧

在MySQL中,LOAD_FILE()函数读取一个文件并将其内容作为字符串返回。

语法

LOAD_FILE(file_name)

其中file_name是文件的完整路径。

下面是我从一个文件中选择内容的示例:

SELECT LOAD_FILE('/data/test.txt') AS Result;

结果:

+------------------------------------------+
| Result                                   |
+------------------------------------------+
| This text is all that the file contains! |
+------------------------------------------+

一个数据库的例子

下面是一个将文件内容插入数据库时查询的示例:

INSERT INTO MyTable (FileId, UserId, MyBlobColumn) 
VALUES (1, 20, LOAD_FILE('/data/test.txt'));

在本例中,列MyBlobColumn有一个BLOB数据类型(允许它存储二进制数据)。

现在它在数据库中,我们可以选择它:

SELECT MyBlobColumn
  FROM MyTable
  WHERE UserId = 20;

结果:

+------------------------------------------+
| MyBlobColumn                             |
+------------------------------------------+
| This text is all that the file contains! |
+------------------------------------------+

如果文件不存在,返回NULL:

SELECT LOAD_FILE('/data/oops.txt') AS Result;

结果:

+--------+
| Result |
+--------+
| NULL   |
+--------+

如果不满足以下条件之一,都有可能返回NUll:

1.文件必须位于服务器主机上。

2.你必须具有该FILE权限才能读取该文件。拥有该FILE权限的用户可以读取服务器主机上的任何文件,该文件是world-readable的或MySQL服务器可读的。

3.文件必须是所有人都可读的,并且它的大小小于max_allowed_packet字节。

你可以这样检查:

SHOW VARIABLES LIKE 'max_allowed_packet';

结果:

+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| max_allowed_packet | 67108864 |
+--------------------+----------+

如果secure_file_priv系统变量被设置为非空目录名,则要加载的文件必须位于该目录中。

你可以这样检查:

SHOW VARIABLES LIKE 'secure_file_priv';

结果:

+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| secure_file_priv | /data/ |
+------------------+--------+

在本例中,我只能从/data/目录中读取文件。

相关推荐:《MySQL教程》

本篇文章就是关于LOAD_FILE()函数在MySQL中的使用介绍,希望对需要的朋友有所帮助!

以上就是在MySQL中如何使用LOAD_FILE()函数?(代码示例)的详细内容,更多请关注php中文网其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/data/3452.html

(0)
打赏 微信扫一扫 微信扫一扫
云大使的头像云大使
上一篇 2019年4月9日 下午8:57
下一篇 2019年4月9日 下午8:57

相关推荐

  • MySQL数据库索引的内容介绍-mysql教程-学派吧

    本篇文章给大家带来的内容是关于MySQL数据库索引的内容介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 存储引擎是数据库的核心,常用的MySQL存储引擎有InnoDB,MyISAM,memory.索引是加速数据的查询的一种数据结构. 1. 索引简介 1.1 索引优点 查询数据块 数据唯一性 加速表之间的连接 1.2 索引缺点 索引会占用…

    数据库运维 2019年4月9日
    2.5K00
  • mysql禁止外部访问解决方案-mysql教程

    本文主要讲述了当mysql禁止外部访问的解决方案,具有一定的收藏价值,有需要的朋友了解一下吧。 1.在端口已经开放的情况下,ubuntu mysql 3306允许远程访问vim /etc/mysql/mysql.conf.d/mysqld.cnf注释#bind-address = 127.0.0.1 2.给用户授权允许远程访问:grant all privi…

    数据库运维 2019年4月24日
    3.0K00
  • MySQL用Navicat导出数据字典的方法-navicat教程

    本篇文章给大家带来的内容是关于MySQL用Navicat导出数据字典的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 数据字典是一名DBA需要维护的重要内容,有人喜欢用excel来维护,本人更喜欢直接在生产库上进行维护,这样可以保证生产库中的注释都是最新的内容,为了便于生产库数据字典的流通性,会采用excel的方式来记录,本文记录下…

    数据库运维 2018年11月26日
    2.9K00
  • redis数据库状态及性能监控使用方法

    Redis介绍 今天给自己的博客使用了Redis、先简单说下什么是redis 有什么用Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表、哈希、集合和有序集合5种。支持在服务器端计算集合的并、交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是…

    2018年9月14日
    4.4K00
  • WP数据提示Error establishing a database connection!

    很多朋友网站访问量稍微增加点、就突然报错,出现数据库挂的情况。一般都是mysql服务设置不当,导致mysql连接数量超过限定值,或者应用程序设计有问题,导致大量休眠连接不能及时释放。 mysql -u root -p 执行指令 show processlist; 查看当前连接数量。如果进程过多,或存在大量超时的休眠sleep连接,编辑/etc/mysql/m…

    数据库运维 2018年8月12日
    5.3K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部
---------官方优惠叠加渠道折扣:通过我们购买腾讯云/阿里云,价格更低,服务更优。更有专业配置指导与服务。微信同步:18838889666----