我在一个安装了MySQL的Linux机器上。
如果在Ubuntu机器上安装了MySQL,我看到一些人在做以下事情:
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‘用户和组吗?还是人们需要手动为linux计算机创建一个mysql帐户?
发布于 2011-11-30 16:30:07
chown命令所做的与您期望的完全一样。chown命令有意义,必须有人有一个引用/data/tmp、关联的系统变量或命令行标志的my.cnf。在Ubuntu (您标记了这个)上,MySQL通常由apt-get安装。MySQL APT包包括在安装软件时自动创建MySQL用户的脚本。
发布于 2011-11-30 16:26:33
当您从像apt-get这样的包管理器安装mysql时,将自动创建mysql用户,并且应该自动设置权限和所有权。
当正在运行的进程(如mysql)创建一个文件时,该文件也应该由相同的有效用户mysql拥有。
发布于 2011-11-30 16:27:40
mysql的主目录设置在/etc/passwd文件中:
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash如果将其更改为/data/tmp (或任何其他dir),dir将成为mysql的主文件夹。
在此基础上,您可以在mysql配置文件“datadir=”中更改米舍尔德下的my.cnf,这将是存储实际数据文件的地方。
[mysqld]
datadir=/var/lib/mysql显然,无论这2点指向什么,mysql用户都需要访问。
**
更改主目录和/或数据目录的原因显然是空间。一个“最佳实践”是将/var目录保持在*nix服务器上,但是sql数据库往往会变大,那么最简单的方法就是将它们移动到另一个分区上。
https://serverfault.com/questions/336277
复制相似问题