当明确要求将数据库存储在另一个路径中时,MySQL 会耗尽/root 中的空间

标签 mysql

我正在尝试为不同的 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/

相关文章:

php - codeigniter batch_update-插入确认

mysql - 从列中删除两侧的字符串

php - Mysqli 无法在 PHP 上插入

php - MySQL php从列和列中查找值

php - INSERT 查询 PDO 单引号 PDO Error

php - 当我收到 PayPal IPN 时,我应该在哪里执行 UPDATE 查询?

mysql - 具有不同日期的子查询 SUM

mysql - 在 Ruby 1.9.2 上安装 mysql2 gem 时出错

mysql - F查找多列的列数

mysql 查询优化