在不同的用户下运行mysqld(linux)

我一直试图在不同的用户下启动mysqld,以及使用不同的数据path。 我通过修改my.cnf文件来完成,如下所示:

 [mysqld] datadir=/bob/database socket=/bob/database/mysql.sock user=bob # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/bob/mysqld.log pid-file=/bob/mysqld.pid 

每当我尝试通过运行service mysqld start来启动mysql守护进程,就会发生两件事情

  1. 我得到以下错误

     ERROR: 1005 Can't create table 'db' (errno: 13) 121010 13:39:46 [ERROR] Aborting 121010 13:39:46 [Note] /usr/libexec/mysqld: Shutdown complete 
  2. 该文件夹/ bob /和其中的一切都有mysql:mysql权限,这让我认为my.cnf的用户选项不起作用,因为我以root用户身份运行service start命令,只能将mysql作为mysql:mysql而不运行进入任何问题。 在运行该命令的同时,我得到以下警告:

     121010 13:39:46 [Warning] Ignoring user change to 'mysql' because the user was set to 'bob' earlier on the command line 

任何帮助将不胜感激。

*** UPDATE

如果不是有bob用户,我把mysql用户和更改bob文件夹的权限到mysql一切工作正常。 所以这是改变用户不是一个不同的数据path的问题。

您可能需要检查init脚本,如/etc/init.d/mysqld或类似的东西,看是否用mysql用户初始化mysql数据库。

我想在mysql-config中更改用户只有在启动过程中启动mysqld时才有效 – 请参阅此处