Linux中,MySQL的用户管理

MySQL库中的表及其作用

user表

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

db表和host表

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

table_priv表和columns_priv表

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

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

procs_priv表

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

账户管理

登录和退出MySQL服务器

MySQL命令常见的参数以及登录和退出MySQL服务器的方法

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

mysql -u root -ppwd123 -h localhost test

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

mysql -u root -p -h localhost test -e "DESC person;"

新建普通用户

使用create user或grant语句

例如:创建一个用户名为:zhangsan,密码是pwd123,主机名是localhost的用户。

create user 'zhangsan'@'localhost' identified by 'pwd123';

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

GRANT SELECT,UPDATE  ON *.* TO 'testUser'@'localhost' IDENTIFIED BY 'testpwd';    /*创建账户并授予权限*/

SELECT Host,User,Select_priv,Update_priv, FROM mysql.user where user='testUser';  /*查看账户权限信息*/

删除普通用户

使用drop user语句

使用drop删除用户‘zhangsan’

drop user ‘zhangsan’@‘localhost’;

使用delete命令删除用户

delete from mysql.user where user='zhangsan' and host='localhost';

密码的修改

root用户修改自己的密码

1)mysqladmin -u root -p password "123456"

2)使用update命令,修改user表中的密码。

例:update user set password=password('root123') where user='root';

3)使用SET语句修改root用户的密码

SET PASSWORD=password("rootpwd3");

root用户修改普通用户密码

1、使用SET语句将testUser用户的密码修改为“newpwd”

SET PASSWORD FOR 'testUser'@'localhost'=password("newpwd");

2、使用UPDATE语句修改普通用户的密码

使用UPDATE语句将testUser用户的密码修改为“newpwd2”:

UPDATE   mysql.user set Password=PASSWORD("newpwd2")

WHERE User="testUser" and Host="localhost";

3)使用GRANT语句修改普通用户密码

【例13.13】使用GRANT语句将testUser用户的密码修改为“newpwd3”:

GRANT USAGE ON *.* TO 'testUser'@'localhost' IDENTIFIED BY 'newpwd3';

普通用户修改密码

3)使用GRANT语句修改普通用户密码

普通用户登录MySQL服务器后,通过SET语句设置自己的密码。

SET PASSWORD = PASSWORD(‘newpassword’);

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

(1)使用--skip-grant-tables选项启动MySQL服务

mysql start-mysqld --skip-grant-tables

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

mysql -u root

update mysql.user set password=password('mypass') where user='root' and host='localhost';

(3)加载权限表

flush privileges;

或者修改/etc/my.cnf配置文件,在里面添加skip-grant-tables

然后重复上面的方式,免密登录MySQL中,进行密码的修改。

权限管理

1:MySQL的各种权限

账户权限信息被存储在mysql数据库的user、db、host、tables_priv、columns_priv和procs_priv表中。在MySQL启动时,服务器将这些数据库表内容读入内存。

2:授权

授权就是为某个用户授于权限。合理的授权可以保证数据库的安全。MySQL中可以使用GRANT语句为用户授于权限。

使用GRANT语句创建一个新的用户grantUser,密码为“grantpwd”。用户grantUser对所有的数据有查询、插入权限,并授于GRANT权限。GRANT语句及其执行结果如下:

MySQL> GRANT SELECT,INSERT ON *.* TO 'grantUser'@'localhost'  IDENTIFIED BY 'grantpwd' WITH GRANT OPTION;

Query OK, 0 rows affected (0.03 sec)

结果显示执行成功,使用SELECT语句查询用户testUser2的权限:

MySQL> SELECT Host,User,Select_priv,Insert_priv, Grant_priv FROM mysql.user where user='grantUser';

3.回收权限

收回权限就是取消已经赋于用户的某些权限。收回用户不必要的权限可以在一定程度上保证系统的安全性。MySQL中使用REVOKE语句取消用户的某些权限。

使用REVOKE语句取消用户testUser的更新权限。REVOKE语句及其执行结果如下:

MySQL> REVOKE UPDATE ON *.* FROM 'testUser'@'localhost';

Query OK, 0 rows affected (0.00 sec)

执行结果显示执行成功,使用SELECT语句查询用户test的权限:

MySQL> SELECT Host,User,Select_priv,Update_priv,Grant_priv FROM MySQL.user where user='testUser';

4:查看权限

SHOW GRANTS语句可以显示指定用户的权限信息,使用SHOW GRANT语句查看账户信息。

SHOW GRANTS FOR ‘user’@’host’ ;

使用SHOW GRANTS语句查询用户testUser的权限信息。SHOW GRANTS语句及其执行结果如下:

MySQL> SHOW GRANTS FOR 'testUser'@'localhost';

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: LinuxMySQL是一种开源的关系型数据库管理系统,它可以在Linux操作系统上运行。MySQL是一种高效、可靠、稳定的数据库系统,被广泛应用于Web应用程序、企业级应用程序等领域。在Linux,我们可以通过命令行或者图形界面来管理MySQL数据库,例如创建数据库、创建表、插入数据、查询数据等操作。同时,Linux还有许多MySQL的相关工具和应用程序,可以帮助我们更加方便地使用MySQL数据库。 ### 回答2: MySQL是一种开源的关系型数据库管理系统,它在Linux系统得到广泛应用。在Linux使用MySQL可以提供强大的数据库管理功能。 首先,MySQL提供了一种高效的数据存储和管理方式。它使用数据库表的形式来存储数据,每个表都具有多个列和行,可以方便地组织和存储大量数据。同时,MySQL支持灵活的数据类型,如整数、浮点数、字符、日期等,可以满足不同类型数据的存储需求。 其次,MySQL提供了丰富的查询和操作功能。它使用结构化查询语言(SQL)作为数据库的查询和操作语言,开发人员可以通过SQL语句对数据库进行各种操作,如插入、修改、删除和查询数据。此外,MySQL还支持事务的处理,可以确保数据库操作的一致性和可靠性。 另外,MySQL在安全性方面也有较好的表现。它支持用户和权限管理机制,可以通过设置用户权限来限制对数据库的访问和操作,提高数据库的安全性。同时,MySQL还支持数据备份和恢复机制,可以有效地保护数据库的数据安全。 此外,MySQL还具有良好的跨平台性。它可以在不同的操作系统上运行,包括Linux、Windows和Mac OS等,可以方便地迁移和部署数据库环境。 总之,MySQL是一种强大且稳定的数据库管理系统,在Linux系统得到广泛应用。它提供了高效的数据存储和管理方式,丰富的查询和操作功能,良好的安全性和跨平台性,能够满足各种应用场景的需求。 ### 回答3: LinuxMySQL是一个开源的关系型数据库管理系统。MySQL的源代码在Linux环境下进行编译和安装,因此它与Linux有着紧密的关联。 Linux作为一个自由、开放的操作系统,与MySQL的开源特性有着良好的兼容性。用户可以使用Linux操作系统来运行和管理MySQL数据库,能够提供稳定且高性能的数据库服务。 通过Linux的终端命令行界面,用户可以方便地进行MySQL数据库的安装、配置和管理。可以使用apt-get或yum等包管理器来安装MySQL,也可以手动下载安装MySQL的二进制文件。同时,Linux的文件系统提供了灵活的权限管理机制,可以方便地控制MySQL数据库的访问权限。 在LinuxMySQL还能够与其他常用的开源软件一起配合使用,如Apache或Nginx作为Web服务器,PHP或Python作为后端程序语言。这些软件的组合,被广泛应用于Web开发、大数据分析、云计算等领域。 另外,Linux还支持多线程和多进程的特性,这使得MySQLLinux上能够更好地利用硬件资源,提升数据库的并发处理能力。 总的来说,LinuxMySQL是一种强大且稳定的数据库管理系统,在Linux的支持下,它能够充分发挥其开源、高性能的特性,满足各种需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值