在 CentOS 7 中设置 mysql root 密码

在 CentOS 7 中设置 mysql root 密码

Centos7中如何登录mysql 5.6命令行客户端并重置root密码?

我读了以下内容在这个链接,但它不起作用:

1) sudo service mysqld stop
2) sudo service mysqld startsos
3) mysql -u root
4) Now you will be at mysql prompt. Here type:-
4.1) UPDATE mysql.user SET Password=PASSWORD('NewPassHere') WHERE User='root';
4.2) FLUSH PRIVILEGES;
4.3) quit;
5) sudo service mysqld restart  

上述步骤 1) 的结果是:

[root@localhost ~]# sudo service mysqld stop
Redirecting to /bin/systemctl stop  mysqld.service
Failed to issue method call: Unit mysqld.service not loaded.

上述步骤 3) 的结果是:

-bash: syntax error near unexpected token `('

当我将步骤 3 更改为 时UPDATE mysql.user SET Password='NewPassHere' WHERE User='root';,出现以下错误:

bash:更新:找不到命令...

su -当我输入成为root然后mysql - u root在下一个提示符下输入时,我似乎确实能够进入mysql 。但是,即使我删除该单词sudo和/或将该单词替换servicesystemctl, 上述 5 个步骤命令也不起作用。如何从设置 root 密码开始,在 CentOS 7 中获得对 mysql 5.6 命令行的工作访问权限?

答案1

要在 RHEL/Centos 7 上安装最新的 MySql 5.7。有以下几个步骤:

步骤1-: 添加以下 EPEL 存储库

$ sudo rpm -iUvh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

第2步-: 使用下面的 yum 安装程序安装 MySql 服务器。

$ sudo yum 安装 mysql 服务器 

步骤 3-: 添加到系统启动项并启动Mysql Server。

$ sudo systemctl 启用 mysqld
$ sudo systemctl 启动 mysqld

步骤4-: 重置 MySql 服务器 root 密码。

sudo grep '临时密码' /var/log/mysqld.log

输出类似-:

10.744785Z 1 [注意] 为 root@localhost 生成临时密码:o!5y,oJGALQa

在重置 mysql_secure_installation 过程中使用上述密码。

$ sudo mysql_secure_installation
确保 MySQL 服务器部署的安全。

输入root用户的密码:
“validate_password”插件安装在服务器上。
后续步骤将使用现有配置运行
插件的。
使用 root 的现有密码。

预计密码强度:100
更改 root 的密码? ((按 y|Y 表示“是”,按任何其他键表示“否”): y

新密码:

重新输入新的密码:

预计密码强度:100
您希望使用提供的密码继续吗?(按 y|Y 表示“是”,按任何其他键表示“否”): y
默认情况下,MySQL 安装有一个匿名用户,
允许任何人登录MySQL而无需拥有
为他们创建的用户帐户。这仅适用于
测试,并使安装过程更加顺利。
您应该在投入生产之前将其删除
环境。

删除匿名用户? (按 y|Y 表示“是”,按任何其他键表示“否”): y
成功。


通常,只允许 root 进行连接
'本地主机'。这确保了别人无法猜测
来自网络的 root 密码。

禁止远程root登录? (按 y|Y 表示“是”,按任何其他键表示“否”): y
成功。

默认情况下,MySQL 附带一个名为“test”的数据库,
任何人都可以访问。这也仅用于测试,
并且应该在投入生产之前删除
环境。


删除测试数据库并访问它? (按 y|Y 表示“是”,按任何其他键表示“否”): y
 - 删除测试数据库...
成功。

 - 删除测试数据库的权限...
成功。

重新加载权限表将确保所有更改
迄今作出的决定将立即生效。

现在重新加载权限表? (按 y|Y 表示“是”,按任何其他键表示“否”): y
成功。

全做完了!

您已成功重置MySql Server的root密码。

步骤 5-: 使用以下命令检查mysql服务器是否连接。

$ mysql -u 根 -p

输出-:

欢迎使用 MySQL 监视器。命令以 ; 结尾或\g。
您的 MySQL 连接 ID 是 9
服务器版本:5.7.12 MySQL社区服务器(GPL)

版权所有 (c) 2000, 2016,Oracle 和/或其附属公司。版权所有。

Oracle 是 Oracle Corporation 和/或其公司的注册商标
附属机构。其他名称可能是其各自的商标
拥有者。

输入“帮助”;或“\h”寻求帮助。键入“\c”以清除当前输入语句。

mysql>

参见我的文章:安装最新-mysql-5-7-rhelcentos-7

答案2

有时您可能会破坏您的配置。因此,重新开始会更容易,就好像该软件包从未安装过一样。对于您的情况,我们正在考虑 MySQL。

  1. 我们使用 Yum 来删除 MySQL,如下所示:
    yum remove mysql mysql-server
  2. 删除 MySQL 后,我们可以安全地备份配置:
    mv /var/lib/mysql /var/lib/mysql_old_backup
    如果您想删除它,请发出:
    rm -vR /var/lib/mysql
  3. 现在我们可以安全地重新安装 MySQL,使用官方 MySQL 存储库中的软件包中包含的默认配置(我们需要wget获取将更新您的存储库的 rpm):
    yum install wget
  4. 现在下载并安装存储库:
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm && rpm -ivh mysql-community-release-el7-5.noarch.rpm
  5. 验证存储库是否已安装:
    ls -1 /etc/yum.repos.d/mysql-community*
  6. 发出实际的安装命令(这将mysql-server用上游 MySQL 的官方包替换 CentOS 存储库中的 ):
    yum install mysql-server
  7. 使用提供的脚本设置 root 密码,现在我们再次进行了全新安装: mysql_secure_installation
    如果您需要在使用脚本后设置密码,请使用:
    mysql -u root
  8. 现在您可以使用 的标准命令来systemctl启动systemd和停止守护进程,如下所示:
    systemctl start mysqld

参考

  1. 如何从Linux系统中完全删除MySQL - CentOS
  2. 如何在 CentOS 7 / RHEL 7 上安装 MySQL Server 5.6

答案3

如果使用命令可以进入MySQL:

mysql -u root

那么您已经可以访问 MySQL,您要么没有为“root”用户设置密码(很可能),要么您可能在 MySQL 的配置文件中设置了密码,例如/etc/my.cnf.

如果你想重置 MySQL root 密码,那么你应该能够运行:

$ mysql_secure_installation

答案4

如果您来这里只是为了密码,请使用

sudo grep 'temporary password' /var/log/mysqld.log

密码将位于字符串的末尾,例如-

2021-09-20T08:57:32.734131Z 1 [Note] A temporary password is generated for root@localhost: tgo;40Yj;_xy3

相关内容