Mysql
在 mysql 中啟用 LOAD DATA LOCAL INFILE
LOAD DATA LOCAL INFILE
預設情況下未啟用。通常,它應該通過放置來local-infile=1
啟用my.cnf
。但它不適用於所有安裝。根據我的經驗,它適用於 Debian 7,但不適用於 Debian 7 minimum,儘管兩個安裝都來自同一個預編譯的 deb 包。兩者都在 OpenVZ VPS 上。如何調試為什麼
local-infile=1
對安裝不起作用,以及如何安全啟動LOAD DATA LOCAL INFILE
?
如果 MySQL Debian-7 minimum 無法使用
local_infile
,請查看所有用於編譯的 make 文件,看看它是否預設禁用或是否local_infile
為 Debian-7 啟用。在花時間之前,請執行以下命令:
SHOW GLOBAL VARIABLES LIKE 'local_infile'; SET GLOBAL local_infile = 'ON'; SHOW GLOBAL VARIABLES LIKE 'local_infile';
它應該回顯以下內容:
mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | OFF | +---------------+-------+ 1 row in set (0.00 sec) mysql> SET GLOBAL local_infile = 'ON'; Query OK, 0 rows affected (0.06 sec) mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | ON | +---------------+-------+ 1 row in set (0.00 sec) mysql>
如果它仍然
'OFF'
顯示 ,請深入查看編譯器設置以啟用它。如果它設置為
'ON'
,您就可以了。請注意我沒有說
SET GLOBAL local_infile = 1;
我說用
SET GLOBAL local_infile = 'ON';
如果將其設置為
my.cnf
[mysqld] local_infile=ON
並且重新啟動 mysql 也不起作用,您必須使用以下內容啟動 mysql:
echo "SET GLOBAL local_infile = 'ON';" > /var/lib/mysql/init_file.sql chown mysql:mysql /var/lib/mysql/init_file.sql service mysql stop service mysql start --init-file=/var/lib/mysql/init_file.sql rm -f /var/lib/mysql/init_file.sql
或者也許將其添加到
my.cnf
[mysqld] init-file=/var/lib/mysql/init_file.sql
然後重啟mysql。
試一試 !!!