如何监控MySQL数据库的当前在线用户数量?

avatar
作者
筋斗云
阅读量:0
MySQL数据库的用户登录数量取决于具体的配置和版本,但通常没有严格的用户数限制。

MySQL数据库用户登录管理

如何监控MySQL数据库的当前在线用户数量?

创建用户

创建新用户是数据库管理的基础操作之一,在MySQL中,可以使用以下命令来创建新用户:

 CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

用户名:指定将创建的用户名。

来源地址:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%。

密码:若使用明文密码,直接输入密码;若使用加密密码,需要先使用SELECT PASSWORD('密码');获取密文,再在语句中添加PASSWORD '密文';若省略"IDENTIFIED BY"部分,则用户的密码将为空(不建议使用)。

示例1:使用明文密码创建用户,只允许zhangsan用户从本地登录:

 CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY '123123';

示例2:使用密文密码创建用户,只允许lisi用户从本地登录:

 SELECT PASSWORD('123456'); # 先获取密文 CREATE USER 'lisi'@'localhost' IDENTIFIED BY PASSWORD '密文';

查看用户信息

创建后的用户保存在mysql数据库的user表中,可以通过以下命令查看user表中的用户信息:

 USE mysql;  SELECT User, Host, authentication_string FROM user;

重命名用户

可以使用RENAME USER命令将用户重命名:

 RENAME USER 'zhangsan'@'localhost' TO 'wangwu'@'localhost';

删除用户

删除用户使用DROP USER命令:

 DROP USER 'lisi'@'localhost';

修改当前登录用户的密码

使用ALTER USER或SET PASSWORD命令可以修改当前登录用户的密码:

 ALTER USER() IDENTIFIED BY 'new_password'; -或者 SET PASSWORD = PASSWORD('new_password');

修改其他用户的密码

使用ALTER USER命令可以修改其他用户的密码:

 ALTER USER 'nancy'@'localhost' IDENTIFIED BY 'abc123';

忘记root用户密码的解决办法

1、修改配置文件/etc/my.cnf,不使用密码直接登录到MySQL:

```sh

vim /etc/my.cnf [mysqld] skip-grant-tables # 添加此行,使登录MySQL不使用授权表 service mysqld restart # 重启服务 mysql # 直接登录,无需密码

如何监控MySQL数据库的当前在线用户数量?

```

2、使用UPDATE命令修改root密码,刷新数据库:

```sql

mysql> UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='root';

mysql> FLUSH PRIVILEGES; # 刷新数据库

mysql> quit # 退出 mysql -uroot -p123456 # 免交互登录的话,"-p密码"不能有空格

```

3、删除配置文件中的配置,之后重启服务:

```sh

vim /etc/my.cnf

# 注意:最后再把/etc/my.conf配置文件里的skip-grant-tables删除,并重启MySQL服务。 service mysqld restart

```

查看当前登录用户

使用以下命令查看当前登录用户和来源地址:

 SELECT user();

数据库用户授权

如何监控MySQL数据库的当前在线用户数量?

授予用户权限

GRANT语句用来设置数据库用户的访问权限,当指定的用户名不存在时,GRANT语句将会创建新的用户;当指定的用户名存在时,GRANT语句用于修改用户信息。

命令格式:

 GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

权限列表:列出授权使用的各种数据库操作,以逗号分隔如"select, insert, update",使用"all"表示所有权限。

数据库名.表名:指定授权操作的数据库和表的名称,其中可以使用通配符*,使用"mysql.*"表示授权操作的对象为mysql数据库中的所有表。

用户名@来源地址:指定用户名称和允许访问的客户机地址,来源地址可以是域名、IP地址,还可以使用“%”通配符。

IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串,在新建用户时,若省略"IDENTIFIED BY"部分,则用户的密码将为空。

示例:允许用户zhangsan在本地查询school数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录,使用密码“123456”进行登录。

 GRANT select ON school.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';

相关问题与解答

问题1:如何查看特定用户的权限?

答:你可以使用SHOW GRANTS命令来查看特定用户的权限,查看用户zhangsan的权限:

 SHOW GRANTS FOR 'zhangsan'@'localhost';

问题2:如何撤销用户的某个权限?

答:你可以使用REVOKE命令来撤销用户的某个权限,撤销用户zhangsan在school数据库上的SELECT权限:

 REVOKE SELECT ON school.* FROM 'zhangsan'@'localhost';

以上就是关于“mysql数据库多少用户登录_管理数据库和用户(MySQL)”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!