“chown mysql:mysql /data/tmp”命令

“chown mysql:mysql /data/tmp”命令

我在 Linux 上Ubuntu机器MySQL已安装。

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

sudo chown mysql:mysql /data/tmp

我很困惑,我知道上述命令的含义,即将其所有者更改为/data/tmp用户“ mysql”,并将其组更改为“ mysql”组。

但是(我的问题):

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

基本上我想知道上述命令的目的和效果。(最好有例子)

2.'mysql' 所有者和组来自哪里?在 Linux 机器上安装 MySQL 是否会自动创建 'mysql' 用户和组?还是需要手动mysql为 Linux 机器创建帐户?

答案1

命令

用户帐户

在 Ubuntu(您已标记此标签)上,MySQL 通常通过 安装apt-get。MySQL APT 包包含在安装软件时自动创建 MySQL 用户的脚本。

答案2

当您从类似的包管理器安装 mysql 时apt-getmysql将自动创建用户,并且权限和所有权也应自动设置。

当正在运行的进程(例如 mysql)创建文件时,该文件也应由同一有效用户拥有mysql

答案3

mysql的主目录在/etc/passwd文件中设置:

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

如果将其更改为 /data/tmp (或任何其他目录),该目录将成为 mysql 的主文件夹。

最重要的是,你可以在 mysql 配置文件“my.cnf”中的 [mysqld] 下更改 datadir=,这将是实际数据文件的存储位置

[mysqld]
datadir=/var/lib/mysql

显然,无论这两个指向什么,mysql 用户都需要访问权限。

**

更改主目录和/或数据目录的原因显然是空间。一个“最佳实践”是在 *nix 服务器上保持 /var 目录相当小,但是 sql 数据库往往会变得很大,最简单的做法是将它们移动到另一个分区上。

相关内容