我有一个查询,这需要时间来执行,因为我导入GEONAMES表MySQL的:未知变量“innodb_lock_wait_timeout = 500”
LOAD DATA LOCAL INFILE 'allCountries.txt'
INTO TABLE geoname
CHARACTER SET 'UTF8'
(geonameid, name, asciiname, alternatenames, latitude, longitude, fclass, fcode, country, cc2, admin1, admin2, admin3, admin4, population, elevation, gtopo30, timezone, moddate);
但是,如果我执行查询,我总是得到
Lock wait timeout exceeded; try restarting transaction
[email protected]:~/work/homestead/project/bin$
所以我试图增加锁定时间。该文件指出这里:http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeout的CLI-参数为--innodb_lock_wait_timeout=#
,但是当我在我的查询设置
mysql -ugeonames -psecret --local-infile=1 --innodb_lock_wait_timeout=500 geonames < geonames_import_data.sql
,我发现了错误
mysql: unknown variable 'innodb_lock_wait_timeout=500'
但我的MySQL版本mysql Ver 14.14 Distrib 5.6.19, for debian-linux-gnu (x86_64) using EditLine wrapper
应该支持这个设置,对吧?
当我把它像全局和SET GLOBAL innodb_lock_wait_timeout = 500;
然后用show variables like '%lock_wait%';
读出的值,我发现了正确的价值观
+--------------------------+----------+
| Variable_name | Value |
+--------------------------+----------+
| innodb_lock_wait_timeout | 500 |
| lock_wait_timeout | 31536000 |
+--------------------------+----------+
如何使用它的命令行上关系吗?
我的版本:
select @@version // 5.6.19-0ubuntu0.14.04.1
mysql --version // mysql Ver 14.14 Distrib 5.6.19, for debian-linux-gnu (x86_64) using EditLine wrapper
如果使用版本5.0和5.6,哪一个(客户端和服务器)? –
不知道,但它大多是相同的5.6 http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeout – Musterknabe
而在你的脚本中,你不能使用“SET SESSION innodb_lock_wait_timeout = 500;“ ? –