我在安装了 MySQL 的Linux ubuntu 计算机上。
如果 Ubuntu 计算机上有 MySQL 安装,我看到有些人在做以下事情:
sudo chown mysql:mysql /data/tmp
我感到困惑,我知道上述命令的含义,即将/data/tmp
的所有者更改为用户“mysql
”,并将其组更改为“mysql
'小组。
但是(我的问题):
1。为什么会运行上述命令?如果我在my_db
数据库中创建了一个表格,默认情况下会自动创建.frm
,.MYD
和.MYI
个文件(数据文件)在/var/lib/mysql/my_db/
下由 MySQL 强>那么,上面的命令是否将默认的MySQL数据目录更改为/data/tmp/
而不是/var/lib/mysql/my_db/
?
基本上,我想知道上述命令的目的和效果。(更好的例子)
2. 'mysql'所有者和群组来自哪里?在Linux机器上安装MySQL是否会自动创建“mysql”用户和组?或者人们需要为linux机器手动创建一个mysql
帐户?
答案 0 :(得分:2)
Mist发行版的MySQL包将确保mysql
用户(和组)存在。然后,如果您设置MySQL以便将其临时文件存储在/data/tmp
中,您将希望它由mysql:mysql
拥有。只要MySQL需要使用临时表(在其他一些情况下),它就会被使用。
答案 1 :(得分:2)
MySQL需要拥有自己的目录,因为它将在该目录中创建/删除文件。如果dir由其他用户ID拥有,则mysql可能会失败,因为它无法执行所需的任何文件操作。一旦它拥有该目录的所有权,就可以获得全权委托。
mysql用户是一个随意的选择。它可以很容易地“变成”。但大多数人使用mysql,因为这是显而易见的选择。如果您正在安装发行版的预编译版本,它通常由软件包安装程序创建。
答案 2 :(得分:0)
对于问题2),如果从源代码安装,则需要自己创建用户和组。来自http://dev.mysql.com/doc/refman/5.0/en/installing-source-distribution.html:
# Preconfiguration setup
shell> groupadd mysql
shell> useradd -g mysql mysql