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