欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > MySQL用户管理

MySQL用户管理

2025/10/26 17:20:18 来源:https://blog.csdn.net/henanxiaoman/article/details/139961075  浏览:    关键词:MySQL用户管理

一.权限表

1.user表

        user表是MySQL中重要的一个权限表,记录允许连接到服务器的账号信息,里面的权限是全局级对的。

2.db表和host表

        db表和host表式MySQL数据中非常重要的权限表,db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。host表中存储了某个主机对数据库的操作权限,配合db权限表对给定主机上的数据库级操作权限做更细致地控制。

3.tables_priv表和columns_priv表

tables_priv表用来对表设置操作权限。

columns_priv表用来对表的某一列设置权限

4.procs_priv表

procs_priv表可以对存储过程和存储函数设置操作权限

二.账号管理

1.登录和退出MySQL服务器

(1)使用root用户登录到本地mysql服务器的test库中

mysql -uroot -p -h location test

备注:-p选项后可以直接跟服务器密码但此方法存在安全隐患,密码可能被窥视。

           -h选项指定MySQL服务所在的位置,location表示本机,也可以是具体的IP地址

           最后的test则表示登录的MySQL服务器不许要使用“use test”命令直接进入test数据库中

(2) 使用root用户登录到本地mysql服务器的test库中,执行一条查询语句

mysql -uroot -p -h location test -e 'DESC mysql;';

备注:

        -e选项:允许你在命令行中输入进入到mysql数据库中要执行的命令,不需要再mysql的交互模式中输入。

        DESC:全称“describe”用于显示数据表的结构,包含字段名 (Field)、数据类型 (Type)、是否允许为空 (Null)、键类型 (Key)、默认值 (Default) 等。

(3)退出登录

exit

2.新建普通用户

(1)使用CREATE USER语句

使用CREATE USER创建一个用户,用户名是henan,密码是xiaoman,主机名是localhost

create user 'henan'@'location' identified by 'xiaoman';

备注:

        create:创建用户,数据库,数据表等;

        @前是用户名;@后是指定该用户能在那个主机上登录mysql服务器。

        identified by 用于指定该用户的密码。

(2)使用GRANT语句

创建一个新的用户testUser,密码为testpwd。用户 testUser对所有的数据有查询和更新权限,并授于对所有数据表的SELECT和UPDATE权限

grant select,update on  *.* to 'testUser'@'location' identified by 'testpwsd'; 

备注:

        grant:授权

        on:用于指定权限的范围

        *.*:第一个 * 代表所有数据库,第二个 * 代表所有表

        to:这部分指定了权限的受益人,即将这些权限授予给哪个用户

3.删除普通用户

(1)使用DROP user语句删除用户

使用DROP USER删除用户'henan'@'localhost'

drop user 'henan'@'localtion';

 备注:

        drop:DROP 命令是用于永久删除数据库对象的,如数据库、表、视图等

(2)使用DELETE语句删除用户

DELETE FROM mysql.user WHERE host='localhost' and user='henan';

备注:

        delete:仅用于数据表中删除一行数据。 

4.root用户修改自己的密码

(1)第一次登录MySQL服务器设置密码

SET PASSWORD=password("rootpwd3");

(2)使用UPDATE语句将root用户的密码修改为“rootpwd2”:

UPDATE mysql.user set Password=password("rootpwd2")
WHERE User="root" and Host="localhost";

5.root用户密码丢失的解决办法

(1)找到 MySQL 的配置文件(通常在 /etc/mysql/my.cnf 或者 /etc/my.cnf),并确保在 [mysqld] 部分添加了 skip-grant-tables 选项。如果没有,请手动添加并保存配置文件。


[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
socket=/usr/local/mysql/data/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
port = 3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=2048
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
#skip-grant-tables
[mysqld_safe]
log-error=/usr/local/mysql/data/error.log
#pid-file=/var/run/mariadb/mariadb.pid

 (2)使用root用户登录和重新设置密码

mysql -u root 
use mysql
update user set authentication_string=password('新密码') where user='root';

(3)加载权限表

flush privileges;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词