关于mysql授权账号权限时的空密码问题

-root ~]$ mysql -uroot -p

Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
[[email protected] ~]$ mysql -uroot -p

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=password(’123123′) where user=’root’;
Query OK, 0 rows affected (0.02 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> SHOW GRANTS FOR root\G
*************************** 1. row ***************************
Grants for [email protected]%: GRANT USAGE ON *.* TO ‘root’@‘%’ IDENTIFIED BY PASSWORD ‘*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1′
*************************** 2. row ***************************
Grants for [email protected]%: GRANT ALL PRIVILEGES ON root_master.* TO ‘root’@‘%’
2 rows in set (0.00

mysql> select user,host,password from mysql.user order by user,host;
+————-+—————+——————————————-+
| user        | host          | password                                  |
+————-+—————+——————————————-+
|             | bj-root |                                           |
|             | localhost     |                                           |
| root        | %             | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
| root        | 127.0.0.1     | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| root        | ::1           |                                           |
| root        | bj-root |                                           |
| root        | localhost     | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| weixin_user | %             | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
| weixinuser  | %             | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
+————-+—————+——————————————-+
9 rows in set (0.00 sec)

解决方法,删除为空的用户授权:

mysql>
mysql>
mysql> drop user ”@’localhost’;
Query OK, 0 rows affected (0.04 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> drop user ”@’bj-root′;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> select user,host,password from mysql.user order by user,host;
+————-+—————+——————————————-+
| user        | host          | password                                  |
+————-+—————+——————————————-+
| admin       | %             |                                           |
| root        | %             | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
| root        | 127.0.0.1     | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| root        | ::1           |                                           |
| root        | bj-root |                                           |
| root        | localhost     | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| weixin_user | %             | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
| weixinuser  | %             | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
+————-+—————+——————————————-+
8 rows in set (0.00 sec)

原因是因为有mysql库的user表有空值的情况mysql进行认证的时候,匹配都了空值,所以就直接能进入myql里面了。

时间: 2024-10-13 23:51:50

关于mysql授权账号权限时的空密码问题的相关文章

mysql登录1045错误时 修改登录密码

1.进入 mysql 的 bin 目录下,打开 cmd ,关闭 mysql 数据库. 2.输入 mysqld --skip-grant-tables 回车. 保持窗口不要更改不要关闭 (--skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证由于mysqld –skip-grant-tables实测在mysql8.0中已失效,8.0请使用mysqld --console --skip-grant-tables --shared-memory) 3.另外开一个cm

phpmyadmin出现空密码登录被禁止

在Windows或者Linux下mysql安装后默认的密码为空,又当我们又安装了mysql的管理工具 phpmyadmin后登陆时出现"空密码登陆呗禁止(参见允许密码为空)".不能登录成功解决办法如下:1..要是你想用空密码,则将phpmyadmin下的config.inc.php(根目录)或者config.default.php(根目录)再则:libraries\config.default.php(友情提示,由于版本不一样可能涉及的文件不同,基本为这三个文件)中的$cfg['Ser

mysql创建账号及管理权限

mysql创建账号及管理权限 0.mysql版本8.0.15,服务器版本:RHEL 6.5 1.创建用户名密码 mysql> use mysql; mysql> create user 'username'@'%' identified by 'password'; 2.赋权 mysql> grant all privileges on *.* to 'username'@'%' with grant option;(授权全部数据库,***危险操作***,(查看PS2)) 3.刷新权限

Linux下MySQL的写文件时权限错误(Errcode: 13)解决方法

在数据库中select * into outfile '/home/mysql/data.sql',mysql又提示错误: ERROR 1 (HY000): Can't create/write to file '/home/mysql/data.sql' (Errcode: 13)   权限错误(Errcode: 13)解决方法 1  查看导出目录的权限 是否有mysql用户写的权限 2 如果有多级目录,要确保到处目录的上级目录有可执行权限,如果是/root目录 700要修改705 否则写不进

MySQL用户和权限管理

MySQL用户权限表 MySQL的认证是“用户”加“主机”而权限是访问资源对象,MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库中,由mysql_install_db脚本初始化.存储账户权限信息表主要有:user,db,tables_priv,columns_priv,procs_priv这五张表(5.6之前还有host表,现在已经把host内容整合进user表),五张表其含义分别是: user表 user表时MySQL中最重要的一个权限表,记录允许连接到服务器的

第01章 mySQL用户和权限管理v1

韩立刚老师视频教学网站 http://www.91xueit.com 韩老师QQ458717185 第01章 MySQL用户和权限管理 mySQL权限控制通过两步控制,能不能连接(验证用户身份),能执行什么操作(验证用户权限). 验证用户身份,需要验证,连接mySQL的计算机的IP地址或计算机名称,用户账户和密码.验证过程如下: 管理mySQL用户 查看mySQL用户账户 mySQL用户存储在mysql数据库的user表,该表在mySQL服务启动时自动加载到内存,控制用户的登录. [[email

MariaDB/MySQL用户和权限管理

本文目录: 1.权限验证 1.1 权限表 1.2 图解认证和权限分配的两个阶段 1.3 权限生效时机 2.用户管理 2.1 创建用户 2.2 create user和alter user 2.3 记录创建用户的时间 2.4 查看用户权限 2.5 revoke命令的严格性 2.6 删除用户 3.设置密码和恢复root密码 3.1 设置密码 3.2 恢复root用户密码 MariaDB/MySQL中的user由用户名和主机名构成,如"[email protected]",同用户名但不同主机

Mysql数据库的权限、索引基本操作

数据库的关闭方法: 1.优雅的关闭数据库的方法:mysqladmin -uroot -p123456 shutdown 2.脚本关闭:/etc/init.d/mysqld stop 3.使用kill信号的方法(最好不用)kill -USR2 'cat path/pid' history不记录历史命令 HISTCONTROL=ignorespace (敲命令的时候加一个空格,可以不记录) 善于使用mysql的help Mysql设置密码的方法:mysqladmin -uroot password

玩转mysql授权

0. 删除系统多余账号 use mysql; select user,host from mysql.user; delete from user where user=''; flush privileges; mysql创建账号: mysqladmin -u root password '123456' 以demo库test库分别demo_1和test_1表为例:  create database demo; create table demo_1(id int);  insert into