admin 管理员组

文章数量: 887053


2024年2月23日发(作者:z型檩条计算公式)

地址: /wengyupeng/article/details/3290415

遇到了 SQLException: access denied for @'localhost' (using password: no)

解决办法 grant all privileges on *.* to joe@localhost identified by '1';

flush privileges; --- 立即生效,不需要重启

拿 joe 1 登陆

附:

mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

set password for'kuja'@'1.1.1.1'= old_password('oigwpofmn'); // 设置1.1.1.1的客户端机器的用户kuja的密码,恢复到之前4.1的版本加密风格

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。

当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。

用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。

‘连接口令’不能为空,否则创建失败。

mysql>grant select,insert,update,delete,create,drop on ee to joe@10.163.225.87 identified by ‘123′ with grant

option;

给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;

给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;

给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;

给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

/blog/309721

GRANT ALL PRIVILEGES

博客分类:

mysql

MySQLSQL

1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user"

表里的 "host" 项,从"localhost"改称"%"

Sql代码 复制代码

1. mysql -u root -pvmwaremysql>use mysql;

2. mysql>update user set host = '%' where user = 'root';

3. mysql>select host, user from user;

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

Sql代码 复制代码

1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY

'mypassword' WITH

GRANT OPTION;

PRIVILEGES;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

Sql代码 复制代码

1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED

BY

2. 'mypassword' WITH GRANT OPTION;

3. FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY

'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码

Sql代码 复制代码

1. GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED

BY

2. 'mypassword' WITH GRANT OPTION;

3. FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY

'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

注意授权后必须FLUSH PRIVILEGES;否则无法立即生效。

另外一种方法.

在安装mysql的机器上运行:

1、d:mysqlbin>mysql -h localhost -u root

//这样应该可以进入MySQL服务器

2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION

//赋予任何主机访问数据的权限

3、mysql>FLUSH PRIVILEGES

//修改生效

4、mysql>EXIT

//退出MySQL服务器

这样就可以在其它任何的主机上以root身份登录啦!

/vindy/archive/2010/01/04/

with admin option和with grant option

with admin option 用于系统权限授权,with grant option 用于对象授权。

但给一个用户授予系统权限带上with admin option 时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin

option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from B.

而with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with

grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。

MYSQL ERROR 1045 (28000): Access denied for user (using password

详细出处参考:/article/

第一种方法: 推荐

错误描述: Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied

for user的错误.

原因分析: 在表中可能出现user为空的记录,如:

mysql> select host,user from user;

+------------------+------+

| host | user |

+------------------+------+

| % | test |

| localhost | |

| localhost | root |

+------------------+------+

3 rows in set (0.00 sec)

解决 办法: 删除这些为空的用户或者更新为其他用户名

删除中值为NULL的,或更新NULL为test

1)delete from user where user is NULL

2)update user set user='test' where user is NULL

意外的情况: 如果上述方法没有效果,依然出现空用户,则可以利用图形化用户client删除.

详细出处参考:/article/


本文标签: 用户 权限 授予 系统 生效