我正在尝试为不同的 Twitter 集存储表格。它们比平时大,因此,我更改了 mysql conf 文件并将其指示将表存储在/home/username/mysql 上。现在,它做到了。但是当我试图通过从文件加载它来创建一个表时,它最初将临时文件存储在根目录中,这会耗尽根空间并且我最终无法写入 DB 。
mysql> load data infile "/home/crazyabtliv/forSphinx.txt" into table Tweets fields terminated by '\t' lines terminated by '\n';
ERROR 3 (HY000): Error writing file '/var/tmp/mysql.jPIAWN/MLPINjsF' (Errcode: 28)
我如何告诉 mySQL 将表直接存储在正确的路径中,而不占用根文件夹上的内存:(?
conf 文件的相关部分如下:
# Change following line if you want to store your database elsewhere
datadir = /home/crazyabtliv/mysql
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
server-id = 1
# The safe_mysqld script
[safe_mysqld]
log-error = /var/log/mysql/mysqld.log
socket = /var/run/mysql/mysql.sock
!include_dir /etc/mysql
[mysqldump]
socket = /var/run/mysql/mysql.sock
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
log = /var/log/mysqld_multi.log
文件中没有 tmpdir。我看错地方了吗?我应该手动插入一个吗?
最佳答案
查看 my.conf 文件中的 tmpdir 指令。
关于当明确要求将数据库存储在另一个路径中时,MySQL 会耗尽/root 中的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150567/