由于 mysql_secure_installation
只是一个 Bash 脚本,所以只需检查此处显示的原始源代码。查找包含 do_query
(注意我在do_query
后面添加的额外空格;需要查找查询而不是函数)的行,然后您就可以找到这些命令。
UPDATE mysql.user SET Password=PASSWORD('root') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
请注意,对于这个例子,我把密码设置为root
,但你可以随意更改以匹配你的设置需求。无论如何,把这些简单的 MySQL 命令保存在一个名为mysql_secure_installation.sql
的文件中。
完成后,运行以下命令通过脚本保护 MySQL 安装:
mysql -sfu root < "mysql_secure_installation.sql"
s
参数可以静默处理错误,f
参数可以强制命令继续执行即使一个命令失败,u
参数与其紧随的用户名相关,在这种情况下显然是root
。
将它在部署脚本中运行,其中MySQL最初安装时没有密码,并且您已设置好在没有任何键盘交互的情况下将其锁定。
附注:此脚本是为了在Ubuntu 14.04上安装MySQL时保护其而编写的。在安装过程中,使用了export DEBIAN_FRONTEND=noninteractive
设置和实际安装命令设置为sudo -E aptitude install -y --assume-yes -q mysql-server mysql-client
。这样做将在Ubuntu上干净地安装MySQL而无需密码;这对于部署脚本非常方便。然后,此mysql -sfu root < "mysql_secure_installation.sql"
命令将在安装完成后几秒钟内将其全部锁定。