【问题标题】:"chown mysql:mysql /data/tmp" command [closed]“chown mysql:mysql /data/tmp”命令[关闭]
【发布时间】:2011-11-30 16:10:03
【问题描述】:

我在安装了 MySQL 的 Linux ubuntu 机器上。

如果在 Ubuntu 机器上安装了 MySQL,我看到有人在做以下事情:

sudo chown mysql:mysql /data/tmp

我一头雾水,我知道上面命令的意思,就是把/data/tmp的所有者改成用户'mysql',并把它所属的组改成'mysql'组。

但是(我的问题):

1. 为什么要运行上述命令?如果我在my_db数据库中创建一个表,默认情况下会有.frm.MYD.MYI文件(数据文件)由MySQL自动创建/strong> 在 /var/lib/mysql/my_db/ 下。那么,上述命令是否将默认 MySQL 数据目录更改为 /data/tmp/ 而不是 /var/lib/mysql/my_db/

基本上我想知道上面命令的目的和作用。(最好有例子)

2. 'mysql' 的所有者和组来自哪里?在 Linux 机器上安装 MySQL 会自动创建“mysql”用户和组吗?或者人们需要手动为 linux 机器创建一个mysql 帐户?

【问题讨论】:

  • StackOverflow 用于编程问题。请将有关服务器的未来问题发布到serverfault.com

标签: mysql database linux ubuntu command-line


【解决方案1】:

MySQL 需要拥有自己的目录,因为它将在该目录中创建/删除文件。如果该目录由某个其他用户 ID 拥有,那么 mysql 可能会失败,因为它无法进行所需的任何文件操作。一旦它拥有目录的所有权,它就拥有了全权委托。

mysql 用户是任意选择。它可以很容易地改为“fred”。但大多数人使用 mysql,因为这是显而易见的选择。如果您要安装发行版的预编译版本,它通常由软件包安装程序创建。

【讨论】:

  • 但是什么是“MySQL 文件和目录”?它是指那些 MySQL 数据库文件,如 .frm 、 .MYD 和 .MYI 吗?如果不是,那么默认情况下,您提到的那些临时文件是什么以及在哪里?
  • mysql 还创建临时文件来缓冲无法放入内存的大型结果集,例如当您对大量数据进行排序时。这不仅仅是 .frm/.myd/etc.. 文件。
  • 但我也在问这些临时文件默认在哪里???例如,那些 .frm、.MYD 和 .MYI 文件默认位于 /var/lib/mysql/my_db/ 下。您提到的文件默认位于哪里????通常临时文件的格式是什么? .dat 文件??
  • 查看您的 my.ini/my.cnf 的 'tmpdir' 设置。而且我不知道临时文件有什么格式/名称。 mysql 与它们一起完成所有工作,所以你只需要担心它们,如果有什么东西爆炸并且它们开始堆积并占用空间。
【解决方案2】:

Mist 发行版的 MySQL 包将确保 mysql 用户(和组)存在。然后,如果您设置 MySQL 以便将其临时文件存储在 /data/tmp 中,您将希望它由 mysql:mysql 拥有。每当 MySQL 需要使用临时表时(以及其他一些情况)都会使用它。

【讨论】:

  • 但是临时文件指的是什么?它是指那些 MySQL 数据库文件,如 .frm 、 .MYD 和 .MYI 吗?如果不是,那么默认情况下,您提到的那些临时文件是什么以及在哪里?
  • 它将引用 temporary 表,因此它可能是 .frm/.myi 以及其他内容,具体取决于 MySQL 用于其临时表的引擎。我不确定默认位置是什么,如果您从二进制包安装,它可能取决于发行版。
【解决方案3】:

对于问题2),如果您是从源代码安装,则需要自己创建用户和组。来自http://dev.mysql.com/doc/refman/5.0/en/installing-source-distribution.html

# Preconfiguration setup
shell> groupadd mysql
shell> useradd -g mysql mysql

【讨论】:

    猜你喜欢
    • 2020-03-11
    • 2014-07-06
    • 2023-03-15
    • 2013-02-04
    • 2019-11-25
    • 2011-02-23
    • 1970-01-01
    • 2015-01-14
    • 2020-09-17
    相关资源
    最近更新 更多