【问题标题】:DATA DIRECTORY MySQL数据目录 MySQL
【发布时间】:2012-08-27 14:04:11
【问题描述】:

查询:

CREATE TABLE IF NOT EXISTS `shop_product`
DATA DIRECTORY = '/var/lib/mysql/shop/'
INDEX DIRECTORY='/var/lib/mysql/shop/'
ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1

为什么会出现这个错误:

DATA DIRECTORY 的参数不正确

【问题讨论】:

    标签: mysql


    【解决方案1】:

    这里至少有两个问题。首先,您的表格没有任何列。其次,你不能在 InnoDB 中使用 DATA DIRECTORYINDEX DIRECTORY

    此外,从 MySQL 5.0.60 开始,您不能使用包含带有 DATA DIRECTORYINDEX DIRECTORY 的 MySQL 数据目录的路径名。我猜/var/lib/mysql 是你的 MySQL 数据目录?

    【讨论】:

    • /var/lib/mysql 是的,这是我的数据目录
    • @user - 那可能是你的问题。在此处查看数据目录和索引目录下的 mysql 文档:dev.mysql.com/doc/refman/5.0/en/create-table.html
    • 从 MySQL 5.6 开始,完全可以将 DATA DIRECTORY 与 InnoDB 一起使用。要求:启用选项--innodb_file_per_table
    【解决方案2】:

    DATA DIRECTORY 通过创建从表通常所在的位置(在 datadir 内部)到选项指定的位置的符号链接来工作。出于安全原因,为避免绕过特权系统,服务器不允许数据目录内的符号链接。因此,DATA DIRECTORY 不能用于指定数据目录内的位置。尝试这样做会导致错误 1210 (HY000) Incorrect arguments to DATA DIRECTORY。

    https://mariadb.com/kb/en/library/create-table/#data-directoryindex-directory

    您的数据目录位于/var/lib/mysql/,请尝试其他位置,例如/var/shop

    【讨论】:

      猜你喜欢
      • 2018-06-30
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2018-11-29
      相关资源
      最近更新 更多