您的位置:

mysqld--initialize-insecure详解

一、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时创建一个未加密的超级用户账号,以方便用户进行配置。使用时需要注意安全问题并及时设置账号密码。