我想在没有/很less权限的计算机上运行MySQL服务器,所以我希望所有数据和所有套接字都包含在一个目录中,而且我显然希望以用户身份运行它而不是作为一项服务。 这一切都在Linux上。
我将如何做到这一点?
如果你有Google的话,有很多关于如何做到这一点的信息。 (或访问man页。)
从MySQL在线文档页面 :
在Unix上,MySQL服务器mysqld可以由任何用户启动和运行。 但是,出于安全原因,您应该避免以Unix root用户身份运行服务器。 要将mysqld更改为普通非特权Unix用户user_name ,必须执行以下操作:
mysqladmin shutdown )。 user_name具有读写文件的权限(您可能需要以Unix root用户身份执行此操作): shell> chown -R user_name /path/to/mysql/datadir如果不这样做,服务器将以user_name.身份运行时无法访问数据库或表user_name. 如果MySQL数据目录中的目录或文件是符号链接,则chown -R可能不会遵循符号链接。 如果没有,您还需要遵循这些链接并更改它们指向的目录和文件。 user_name.启动服务器user_name. 另一种方法是以Unix root用户身份启动mysqld,并使用--user=user_name选项。 启动mysqld ,然后在接受任何连接之前切换为以Unix用户user_name身份运行。 /etc/my.cnf选项文件的[mysqld] group或服务器数据中的my.cnf选项文件添加用户选项来指定用户名目录。 例如: 的[mysqld]
用户= USER_NAME
如果您的Unix机器本身不安全,您应该将密码分配给授权表中的MySQL根帐户。 否则,任何在该机器上拥有login帐户的用户都可以使用--user=root选项运行mysql客户端并执行任何操作。 (在任何情况下,都要给MySQL帐户分配密码是一个好主意,但当服务器主机上存在其他login帐户时尤其如此)。