一、mysqld--initialize-insecure是什么?
mysqld--initialize-insecure是MySQL 5.7.6版本新增的一个选项,可以在首次安装MySQL时创建一个未加密的超级用户账号,以方便用户进行配置。之前的MySQL版本安装时需要手动创建超级用户账号,现在通过指定这个选项,可以自动创建一个未加密的账号,方便用户配置。
下面是MySQL官网对mysqld--initialize-insecure的定义:
--initialize-insecure Perform the server installation and initialize the data directory, but without setting up a password for the superuser account. This enables you to start the MySQL server, and then set the root password with the instructions from the next section.
二、mysqld--initialize-insecure的使用方法
在安装MySQL时,可通过指定--initialize-insecure选项来创建未加密的超级用户账号。
$ sudo mysqld --initialize-insecure
执行成功后,MySQL会在默认的数据目录下创建一个未加密的超级用户账号,账号名为root。
三、mysqld--initialize-insecure的注意事项
1、--initialize-insecure选项只在首次安装MySQL时有效,如果MySQL已经安装过了,则无法使用此选项。
2、使用--initialize-insecure选项创建的超级用户账号是未加密的,不安全,用户在使用时需要及时设置密码。
3、如果已经使用了--initialize-insecure选项创建了超级用户账号,又需要重新创建加密的超级用户账号,可以使用--initialize选项重新安装MySQL,并重新设置密码。
4、--initialize-insecure选项在创建超级用户账号时,不会进行其他额外的配置,例如创建其他用户、设置授权、启用日志等,用户需自行进行相关配置。
四、mysqld--initialize-insecure的代码示例
下面是在Ubuntu 18.04操作系统下使用mysqld--initialize-insecure创建未加密的超级用户账号的代码示例:
$ sudo apt update $ sudo apt install mysql-server $ sudo systemctl start mysql $ sudo systemctl status mysql $ sudo mysqld --initialize-insecure $ sudo systemctl restart mysql $ mysql -u root mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword'; mysql> exit
执行成功后,用户就可以使用创建的超级用户账号登录MySQL,并且可以通过ALTER USER语句来设置账号的密码。
五、结语
mysqld--initialize-insecure选项是MySQL 5.7.6版本新增的一个选项,可以在首次安装MySQL时创建一个未加密的超级用户账号,以方便用户进行配置。使用时需要注意安全问题并及时设置账号密码。