我在Ubuntu 12 LTS上运行Mysql 5.5.我应该如何在my.cnf中启用LOAD DATA LOCAL INFILE?
我已经尝试在我的配置中在各个地方添加local-infile但是我仍然得到"这个MySQL版本不允许使用的命令"
dAm*_*m2K 193
从MySQL 5.5手册页:
仅当您的服务器和客户端都已配置为允许时,LOCAL才有效.例如,如果mysqld以--local-infile = 0启动,则LOCAL不起作用.请参见第6.1.6节"LOAD DATA LOCAL的安全问题".
您应该设置选项:
local-infile=1
Run Code Online (Sandbox Code Playgroud)
进入my.cnf文件的[mysql]条目或使用--local-infile选项调用mysql客户端:
mysql --local-infile -uroot -pyourpwd yourdbname
Run Code Online (Sandbox Code Playgroud)
您必须确保在[mysqld]部分中定义了相同的参数,以启用"本地infile"功能服务器端.
这是一个安全限制.
小智 56
你应该修改my.cnf文件是/etc/mysql/my.cnf文件.只是:
sudo nano /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)
然后加:
[mysqld]
local-infile
[mysql]
local-infile
Run Code Online (Sandbox Code Playgroud)
已经给出了头文件[mysqld]和[mysql],只需在文件中找到它们,并在每个文件下面添加local-infile.
它适用于Ubuntu 12.04 LTS上的MySQL 5.5.
小智 29
用本机驱动程序替换驱动程序php5-mysql
关于debian
apt-get install php5-mysqlnd
Run Code Online (Sandbox Code Playgroud)
小智 16
我使用mysql终端命令在MySQL 8.0.11上解决了这个问题:
SET GLOBAL local_infile = true;
Run Code Online (Sandbox Code Playgroud)
我的意思是我先用平时登录:
mysql -u user -p*
Run Code Online (Sandbox Code Playgroud)
之后,您可以使用以下命令查看状态:
SHOW GLOBAL VARIABLES LIKE 'local_infile';
Run Code Online (Sandbox Code Playgroud)
它应该是ON.我不会写关于在这里将本地文件加载到数据库中的安全性.
ton*_*gil 13
如果你在ubuntu上的mysql的味道在任何情况下都没有工作,你仍然得到1148错误,你可以load data infile通过命令行运行命令
打开终端窗口
跑 mysql -u YOURUSERNAME -p --local-infile YOURDBNAME
您将被要求插入mysqluser密码
你将运行MySQLMonitor,你的命令提示符将是 mysql>
运行你的load data infile命令(别忘了用分号结束; )
像这样:
load data local infile '/home/tony/Desktop/2013Mini.csv' into table Reading_Table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Run Code Online (Sandbox Code Playgroud)
添加local_infile和mysql部分mysqld。
[mysql]
local_infile=1
...
[mysqld]
local_infile=1
...
Run Code Online (Sandbox Code Playgroud)
在 Windows 和 Linux 中的 MySQL 8.x 中进行了测试。
此外,对于其他读者,如果您尝试在 Django 中执行此操作,并且您的服务器允许 local_infile(您可以通过 mysql 客户端键入 SHOW VARIABLES 进行检查),那么您可以将其添加到您的settings.py文件中(因为 python MySQLdb 没有) t 默认读取 .my.cnf 文件):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb',
'USER': 'myname',
'PASSWORD': 'mypass',
'HOST': 'myserver',
'PORT': '3306',
'OPTIONS' : {
'local_infile':1,
},
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
见下图...
我已经添加--local-infile=1到普通的mysql命令 mysql -u root -p
所以总行将是:
mysql --local-infile = 1 -u根-p
小智 6
我知道这并不完全是OP所要求的,但由于这个线程已经很老了,而且这里提出的解决方案都不适合我,所以我决定分享这个。
如果有人在 MySql 版本 8 中启用 local_infile 时遇到问题,这里的命令可以解决我的问题:
SET PERSIST local_infile = 1;
Run Code Online (Sandbox Code Playgroud)
它将配置保存在“mysqld-auto.cnf”配置文件中,然后在服务或服务器重新启动后将记住更改。
| 归档时间: |
|
| 查看次数: |
203584 次 |
| 最近记录: |