首次安装mysql服务,无法启动服务&登陆被拒ERROR 1045 (28000)解决方法

2.10.4保护初始MySQL帐户(复制于MySQL官网)

MySQL安装过程涉及初始化数据目录,包括mysql包含定义MySQL帐户的授权表的数据库。有关详细信息,请参见第2.10节“安装后设置和测试”。

本节介绍如何为rootMySQL安装过程中创建的初始帐户分配密码 (如果尚未这样做)。


注意

  • 在Windows上,您还可以在使用MySQL Installer进行安装期间执行本节中描述的过程(请参见 第2.3.3节“适用于Windows的MySQL安装程序”)。在所有平台上,MySQL发行版都包含 mysql_secure_installation,这是一个命令行实用程序,可以自动完成保护MySQL安装的大部分过程。MySQL Workbench可在所有平台上使用,并且还提供管理用户帐户的功能(请参阅 第30章,MySQL Workbench)。

在这些情况下,密码可能已经分配给初始帐户:

  1. 在Windows上,使用MySQL Installer执行的安装为您提供了分配密码的选项。

  2. 使用macOS安装程序进行安装会生成一个初始随机密码,安装程序会在对话框中向用户显示该密码。

  3. 使用RPM软件包进行安装会生成一个初始随机密码,该密码将写入服务器错误日志。

  4. 使用Debian软件包的安装为您提供了分配密码的选项。

  5. 对于使用mysqld --initialize手动执行的数据目录初始化 , mysqld生成初始随机密码,将其标记为已过期,并将其写入服务器错误日志。有关详细信息,请参见 第2.10.1.1节“使用mysqld手动初始化数据目录”。

  6. 该mysql.user授权表定义了初始MySQL用户账户和访问权限。MySQL的安装只会创建一个’root’@‘localhost’ 具有所有权限且可以执行任何操作的超级用户帐户。如果该root帐户的密码为空,则您的MySQL安装不受保护:任何人都可以在root 没有密码的情况下连接到MySQL服务器并获得所有权限。

  7. 该’root’@‘localhost’帐户在mysql.proxies_priv表中还有一行,用于为所有用户和所有主机授予PROXY权限 ‘’@’’。这样可以root设置代理用户,以及委托其他帐户设置代理用户的权限。请参见第6.3.11节“代理用户”。


要为初始MySQL root 帐户分配密码,请使用以下过程。new_password在示例中替换 您要使用的密码。

如果服务器未运行,请启动它。有关说明,请参见 第2.10.2节“启动服务器”。

初始root帐户可能有也可能没有密码。选择以下适用的程序:

如果root帐户存在初始随机密码已过期,请root使用该密码连接到服务器,然后选择新密码。如果数据目录是使用mysqld --initialize初始化的,则可以手动或使用安装程序在安装操作期间无法指定密码。由于密码存在,您必须使用它来连接到服务器。但由于密码已过期,除了选择新密码之外,您不能将该帐户用于任何其他目的,直到您选择一个密码。

如果您不知道初始随机密码,请查看服务器错误日志。

就是安装目录下data文件夹中的ERR文件,打开搜索password,就能找到初始随机密码 (这是重点,其他都不重要)


  • root使用密码 连接到服务器:
    shell> mysql -u root -p
    Enter password: (enter the random root password here)

  • 选择一个新密码来替换随机密码:
    mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new_password’;

    • 如果root帐户存在但没有密码,请root 使用无密码连接到服务器,然后分配密码。如果使用mysqld初始化数据目录,则会出现这种情况–initialize-insecure。
  • root使用无密码 连接到服务器:
    shell> mysql -u root --skip-password


  • 分配密码:
    mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new_password’;
  • 为root帐户分配密码后,只要您使用该帐户连接到服务器,就必须提供该密码。例如,要使用mysql客户端连接到服务器 ,请使用以下命令:
    shell> mysql -u root -p
    Enter password: (enter root password here)

  • 要使用mysqladmin关闭服务器,请使用以下命令:
    shell> mysqladmin -u root -p shutdown
    Enter password: (enter root password here)

猜你喜欢

转载自blog.csdn.net/baidu_38815750/article/details/83040775