当前位置: 首页 > 面试题库 >

MySQL中的初始授权问题

益智明
2023-03-14
问题内容

我尝试了多种安装mySql的方法,然后通过全新安装访问数据库。操作系统为RHEL7。使用的软件包为mysql-5.7.7-0.3.rc.el7.x86_64.rpm-
bundle.tar

installation process: 
[root@host1 mysql]# rpm -ivh mysql-community-common-5.7.7-0.3.rc.el7.x86_64.rpm mysql-community-libs-5.7.7-0.3.rc.el7.x86_64.rpm mysql-community-client-5.7.7-0.3.rc.el7.x86_64.rpm mysql-community-server-5.7.7-0.3.rc.el7.x86_64.rpm
 Preparing...                          ################################# [100%]
 Updating / installing...
1:mysql-community-common-5.7.7-0.3.################################# [ 25%]
2:mysql-community-libs-5.7.7-0.3.rc################################# [ 50%]
3:mysql-community-client-5.7.7-0.3.################################# [ 75%]
4:mysql-community-server-5.7.7-0.3.################################# [100%]

然后我启动服务器

 systemctl start mysqld

在此之后,我尝试不使用root用户密码访问服务器。我收到以下错误消息:

[root@host1 mysql]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

由于我尚未设置任何密码,因此不太确定为什么会出现此错误。在此之后,我尝试了各种选择,并且可以为我提供帮助。

选项1:要求创建文件并使用init文件更改密码。我尝试使用它,并得到如下输出:

    [root@host1 mysql]# mysqld_safe --init-file=/home/me/mysql-init & [1]28469
    -bash: mysqld_safe: command not found

选项2:使用mysqladmin命令设置密码

[root@host1 mysql]# /usr/bin/mysqladmin -u root password
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

选项3:使用mysql_secure_installation

[root@host1 mysql]#  mysql_secure_installation

Securing the MySQL server deployment.

Enter password for root user:
Error: Access denied for user 'root'@'localhost' (using password: NO)

选项4:mysql -u root

[root@host1 mysql]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

和其他各种。您能否建议这可能是什么问题。


问题答案:

对于曾经为此而烦恼的人:

  1. 停止MySql服务器

  2. 创建一个文本文件onetime.sql,其中包含以下内容:

set password for 'root'@'localhost' = PASSWORD('password789');

该文件的路径,以便安全,其他用户无法访问该文件 /home/jason

  1. 使用以下--init-file选项启动MySql服务器:

mysqld_safe --init-file=/home/jason/onetime.sql &

  1. 密码更改后,请稍候。等待不会很久。

  2. 删除该文件… rm /home/jason/onetime.sql

  3. 停止MySql服务器

  4. 以正常方式启动MySql服务器

编辑 这可能是必要的:

一旦MySQL停止,

编辑/etc/my.cnf文件以添加该行

skip-grant-tables

重新启动

使用root用户连接到MySQL。

mysql -u root

登录后,您将看到以下提示:

mysql>

输入以下命令:

mysql> use mysql;
mysql> UPDATE user SET password=PASSWORD("YOUR NEW PASSWORD HERE") WHERE User='root';
mysql> flush privileges;
mysql> quit

现在再次停止MySQL:

如果您编辑了/etc/my.cnf文件,请删除skip-grant-tables行。

现在重新启动MySQL并测试您的新登录名。

服务mysqld重启

mysql -u root -p



 类似资料:
  • 主要内容:权限类型说明授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。 在 MySQL 中,拥有 GRANT 权限的用户才可以执行 GRANT 语句,其语法格式如下: 其中: priv_type 参数表示权限类型; columns_list 参数表示权限作用于哪些列上,省略该参数时,表示作用于整个表; database.table

  • 我试图用Github Api做一个授权请求,传递用户名和密码。但它不起作用,我得到了401状态代码。 文件里有一部分说 这是我的密码:

  • 我想从我的android应用程序中读取来自Google Sheets的表格。我想通过Google Sheets API来做到这一点。我将工作表声明为公共,创建了API密钥并尝试发送服务调用: 我有401密码。答复: 请求缺少必需的身份验证凭据。需要OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。看见https://developers.google.com/identity/si

  • 我正在heroku上做一个新项目,使用mysql(他们有一个名为JawsDB的插件,它给我一个mysql主机、用户名和密码)。(更新:我也试过使用他们的其他mysql插件ClearDB,我也遇到了同样的问题) 我可以像这样连接到数据库(并且我可以“show databases”来查看其中的内容): 问题:当我创建数据库时,我得到: 我已尝试授予所有特权,如下所示: 但这给了我: 我也尝试过创建用户

  • 我尝试了API Nodejs v1和v2的IBM沃森助手创建一个新的转换。但它给了我总是相同的错误代码401未经授权:访问被拒绝由于无效的凭据。我不知道发生了什么,提前感谢你的答案。 IBM助手的文档API向我展示了这样的代码: 我不确定Version2的sesion-id是否正确。但是API v1不需要session_id,它也给出了相同的错误代码。 我想确认“助手设置”、“API详细信息”,我

  • AuthorizationServer: 该问题可能是由于WebSecurity类的某些配置不正确造成的。但是,我尝试了多种配置,但都没有运气。