mysql 如何查看该数据库用户具有哪些权限?

mysql 如何查看该数据库用户具有哪些权限?,第1张

1、use mysql

2、SELECT * FROM users

就可以看到所有的使用者权限

有关db的数据是记录在Db(大小写要注意)这个数据表中,所以只要呼叫出Db的资料 SELECT * FROM Db 就可以看到你要的答案。

或者可以用:

SELECT * FROM Db WHERE Db='phplampDB'找出你要的答案

扩展资料:

授予MySQL用户权限的语句

show grants for 你的用户

比如:show grants for root@'localhost'

Grant 用法:

GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD

'*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB'

GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost'

建立一个只可以在本地登陆的 不能 *** 作的用用户名 discuz 密码为 ***** 已经加密了的

然后第二句的意思是 ,给这个discuz用户 *** 作discuz数据库的所有权限

使用GRANT

GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:

mysql>GRANT <privileges>ON <what>

->TO <user>[IDENTIFIED BY "<password>"]

->[WITH GRANT OPTION]

1、改表法。

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

mysql -u root -pvmwaremysql>use mysql

mysql>update user set host = '%' where user = 'root'

mysql>select host, user from user

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

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

TH GRANT OPTION

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

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

'mypassword' WITH GRANT OPTION

我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES

使修改生效,就可以了

另外一种方法:

在安装mysql的机器上运行:

1、d:\mysql\bin\>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身份登录啦。

今天我们主要是讲一下关于Linux忘记mysql密码处理方法,下面提供了5种linux忘记MySQL密码找回方法哦。

方法一:

# /etc/init.d/mysql stop

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# mysql -u root mysql

mysql>update user set password=password(newpassword) where user=root

mysql>flush privileges

mysql>quit

# /etc/init.d/mysql restart

# mysql -uroot -p

enter password: <输入新设的密码newpassword>

mysql>

方法二:

直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:

# mysql -udebian-sys-maint -p

enter password: <输入[client]节的密码>

mysql>update user set password=password(newpassword) where user=root

mysql>flush privileges

mysql>quit

# mysql -uroot -p

enter password: <输入新设的密码newpassword>

mysql>

方法三:

这种方法我没有进行过测试,因为我的root用户默认密码已经被我修改过了,那位有空测试一下,把结果告诉我,谢谢!!

# mysql -uroot -p

enter password: <输入/etc/mysql/debian.cnf文件中[client]节提供的密码>

方法四:

方法如下: 1, 关闭mysql服务 /etc/init.d/mysqld stop 2,使用 –skip-grant-tables选项启动mysql服务,可以修 改/etc/inin.d/mysqld脚本启动位置增加此选项, vi /etc/init.d/mysqld

方法如下:

1, 关闭mysql服务

/etc/init.d/mysqld stop

2,使用 –skip-grant-tables选项启动mysql服务,可以修 改/etc/inin.d/mysqld脚本启动位置增加此选项,

vi /etc/init.d/mysqld

在下面运行启动的语句里增加--skip-grant-tables

/usr/bin/mysqld_safe --skip-grant-tables --datadir="$datadir" --socket="$socketfile"

--log-error="$errlogfile" --pid-file="$mypidfile"

加入--skip-grant-tables的意思是启动mysql服务的时候跳 过权限表认证。启动后,连接到mysql的root不需要口令

3,重新启动mysql服务

/etc/init.d/mysqld start

4. 修改root用户的密码;

mysql>update mysql.user set password=password(123456) where user=root;

mysql>flush privileges;

mysql>quit

5. 重新启动mysql,就可以使用 新密码登录了。

mysql

mysql -u root –p

输入密码:123456

6,关闭mysql服务

/etc/init.d/mysqld stop

7, 重新修改第2步修改的/etc/init.d/mysqld,使其保持原来不变,也就是取消--skip-grant-tables语句

8,重新 启动mysql服务

/etc/init.d/mysqld start


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5904021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存