Login
网站首页 > 文章中心 > 其它

解决mysql ERROR 1045 _28000)|*|#8211; Access denied for user问题_解决晕车的7个小方法

作者:小编 更新时间:2023-08-12 10:41:45 浏览量:145人看过

1. 修改或重置 root 密码

步骤1:停止 MySQL 服务

在命令行输入以下命令停止 MySQL 服务:

sudo systemctl stop mysql

步骤2:使用 -skip-grant-tables 参数重新启动 MySQL

重新启动 MySQL 服务,并使用 -skip-grant-tables 参数跳过权限校验:


sudo mysqld_safe --skip-grant-tables 

步骤3:以 root 身份登录 MySQL

以 root 用户身份重新登录 MySQL:

mysql -u root

步骤4:修改 root 密码

使用如下命令修改 root 用户密码:

USE mysql;
UPDATE user SET authentication_string=PASSWORD('mynewpassword') WHERE User='root';
FLUSH PRIVILEGES;

其中 mynewpassword 是你要设置的新密码,改完密码后执行 FLUSH PRIVILEGES 语句,刷新权限表.

步骤5:重新启动 MySQL

终止现有的 MySQL 实例以及跳过授权验证实例,然后重新启动 MySQL:

sudo systemctl stop mysql
sudo systemctl start mysql

示例1:修改 root 用户的密码

USE mysql;
UPDATE user SET authentication_string=PASSWORD('123456') WHERE User='root';
FLUSH PRIVILEGES;

2. 创建新的 MySQL 用户

步骤1:以 root 用户身份登录 MySQL

以 root 用户身份登录 MySQL:

mysql -u root -p

步骤2:创建新用户

使用以下命令创建新的 MySQL 用户:

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';

其中,user1 是新建用户的名称,localhost 是被授权的主机名,可以替换为其他 IP 地址或者 host 名称.password1 是新建用户的密码.

步骤3:授权用户访问 MySQL

使用以下命令为新建用户授权 MySQL 访问权限:

GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost' WITH GRANT OPTION;

这条语句将允许 user1 用户从 localhost 访问 MySQL 所有的数据库和表,并且允许它将它的权限授予其他 MySQL 用户.

步骤4:刷新权限表

执行以下命令,以使权限更改生效:

FLUSH PRIVILEGES;

示例2:创建新的 MySQL 用户

CREATE USER 'user2'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

③ 检查 MySQL 数据库和表的权限设置

步骤1:以 root 用户身份登录 MySQL

mysql -u root -p

步骤2:检查原数据库和表的权限

使用 show grants 命令查看目前的 MySQL 数据库和表的权限设置:

SHOW GRANTS FOR 'user'@'localhost';

这个命令将显示 user 用户当前所拥有的所有 MySQL 数据库和表的权限.

步骤3:授权用户访问 MySQL

可以使用以下命令为用户赋予 MySQL 访问权限:

GRANT ALL ON database_name.* TO 'user'@'localhost';

其中,database_name 表示数据库名称,user 表示用户名,localhost 表示主机名.这个命令将允许 user 用户访问指定的数据库和表.

步骤4:刷新权限表

FLUSH PRIVILEGES;

示例3:查看 user 用户的权限

例如,我们查看一下 user 用户目前所拥有的 MySQL 数据库和表的权限:

SHOW GRANTS FOR 'user'@'localhost';

该命令将输出如下信息:

+---------------------------------------------------------+
| Grants for user@localhost                               |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user'@'localhost'                |
| GRANT ALL PRIVILEGES ON +db_test+.* TO 'user'@'localhost' |
+---------------------------------------------------------+

我们可以看到,user 用户只拥有对 db_test 数据库的全部权限,对于其他数据库和表,它只有使用权限.

以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章