6.1.5 如何以普通用户身份运行 MySQL
在 Windows 上,您可以使用普通用户帐户将服务器作为 Windows 服务运行。
在 Linux 上,对于使用 MySQL 系统信息库,RPM 软件包或 Debian 软件包执行的安装,MySQL 服务器mysqld应由本地mysql
os 用户启动。安装中包含的初始化脚本不支持由另一个 os 用户启动。
在 Unix 上(或使用tar
或tar.gz
软件包执行 Linux 安装),MySQL 服务器mysqld可以由任何用户启动和运行。但是,出于安全原因,应避免以 Unix root
用户身份运行服务器。要将mysqld更改为以普通非特权 Unix 用户* user_name
*的身份运行,您必须执行以下操作:
-
如果服务器正在运行,请停止服务器(使用mysqladmin shutdown)。
-
更改数据库目录和文件,以便*
user_name
*具有读取和写入文件的特权(您可能需要以 Unixroot
用户的身份进行此操作):
shell> chown -R user_name /path/to/mysql/datadir
如果不这样做,则服务器以* user_name
*的身份运行时将无法访问数据库或 table。
如果 MySQL 数据目录中的目录或文件是符号链接,则chown -R
可能不会跟随您的符号链接。如果没有,您还需要跟随这些链接并更改它们指向的目录和文件。
-
以用户*
user_name
的身份启动服务器。另一种选择是以 Unixroot
用户身份启动mysqld并使用--user=user_name选项。 mysqld启动,然后切换为以 Unix 用户user_name
*的身份运行,然后接受任何连接。 -
要在系统启动时自动以给定用户身份启动服务器,请通过在服务器数据目录的
/etc/my.cnf
选项文件或my.cnf
选项文件的[mysqld]
组中添加user
选项来指定用户名。例如:
[mysqld]
user=user_name
如果您的 Unix 机器本身不受保护,则应在授权 table 中为 MySQL root
帐户分配密码。否则,该计算机上具有登录帐户的任何用户都可以使用--user=root选项运行mysqlClient 端并执行任何操作。 (在任何情况下,最好将密码分配给 MySQL 帐户,但是在服务器主机上存在其他登录帐户时尤其如此.)请参见第 2.10.4 节“保护初始 MySQL 帐户”。