昨天安装了一个新版的mysql,启动时发现和以前不同,查了些资料,归纳一下。
环境:mysql4.1左右版本。
启动方式一:
调用mysqld,这个是mysql的最原始的启动命令,其他脚本都调用他。
启动方式二:
mysqld_safe脚本,这个使用于手动启动mysql数据库。
启动方式三:
mysql.server,这个适用于自动启动mysql,把他放到linux的/etc/rc.d/init.d目录下,rc3.d目录下建一个连接就可以了。
但是无论用哪种,都要用mysql用户调用。也就是说,必须在系统中创建mysql用户。如果想用其他用户启动,需要查看SECURITY部门,根据提示修改,但是我没有找到这部分文档。
以前的版本是不需要的。root用户可以直接执行mysqld命令,或者在init.d目录下建一个mysqld的守护进程,再连结到rcx.d目录。
mysql官方说,这样做是为了安全。全部由mysql用户控制进程,确实增加了系统安全,避免出现root权限外泄的现象,但是这样也增加了安装的复杂性。
比如说,我用root用户安装mysql,那么安装目录就会属于root用户所有,为了让mysql能执行命令,必须要把一定的权限放给mysql。如果权限放置的不好,就会出现系统漏洞。比较好的方法就是把mysql安装目录归mysql用户所有,根据需要把root用户加入到mysql组,具有mysql的权限(如果没有需要,完全可以不给root权限)。
但是老版本的mysql就不这样做,mysql目录归root所有,由root用户执行,操作方便了,但是确实存在了安全隐患。