mysql
,用于存储系统信息。管理用户和权限主要通过CREATE USER
、GRANT
等命令实现。MySQL是一个广泛使用的开源关系型数据库管理系统,它默认创建了一些关键的系统数据库和表,这些数据库和表是MySQL正常运行和管理的基础,它们存储了用户信息、权限数据以及服务器的性能指标等重要信息。
一、MySQL的默认数据库
1、information_schema:这个数据库包含了关于MySQL服务器所有其他数据库的元数据,如数据库名、表名、列名、索引、访问权限等,它是一个只读数据库,主要用于查询和获取数据库的结构信息,例如通过SHOW TABLES
或DESCRIBE table_name
命令获取的信息就来自这个数据库。
2、mysql:这是MySQL的核心数据库之一,用于存储MySQL系统自身的用户账户、权限设置和其他配置信息,它包含了多个关键表,如user
表(存储用户账户和权限)、db
表(存储数据库级别的权限)、tables_priv
表(存储表级别的权限)以及columns_priv
表(存储列级别的权限)等。
3、performance_schema:从MySQL 5.5版本开始引入,这个数据库用于收集数据库服务器的性能数据,包括事件等待时间、锁等待情况、I/O操作等,它对于性能分析和优化非常有用,但通常不建议在生产环境中开启,因为它可能会增加服务器的负载。
4、sys:这是MySQL 8.0版本引入的新特性,它是一个视图集合,基于performance_schema和information_schema的数据,提供了更高级的查询功能和更直观的性能监控界面,它使得系统管理和监控变得更加简单和高效。
二、MySQL的默认表
由于MySQL的默认表主要分布在上述几个系统数据库中,因此没有单独列出所有默认表,不过,可以简要介绍几个关键表中的一些重要字段:
user
表:包含字段如User
(用户名)、Host
(主机名)、authentication_string
(加密后的密码)等,用于存储用户账户信息。
db
表:包含字段如Db
(数据库名)、Host
、User
等,用于存储数据库级别的权限信息。
tables_priv
表:包含字段如Host
、Db
、User
、Table_name
等,用于存储表级别的权限信息。
columns_priv
表:包含字段如Host
、Db
、User
、Table_name
、Column_name
等,用于存储列级别的权限信息。
三、管理数据库和用户(MySQL)
1、创建新用户:使用CREATE USER 'username'@'host' IDENTIFIED BY 'password';
命令创建新用户,创建一个名为john
的用户,密码为password123
,并允许其从任何主机连接,可以使用以下命令:
CREATE USER 'john'@'%' IDENTIFIED BY 'password123';
2、授予权限:使用GRANT
命令为用户分配权限,授予用户john
对名为mydb
的数据库的所有权限,可以使用以下命令:
GRANT ALL PRIVILEGES ON mydb.* TO 'john'@'%'; FLUSH PRIVILEGES;
注意,执行GRANT
命令后需要刷新权限以使更改生效。
3、修改密码:使用ALTER USER
或SET PASSWORD
命令修改用户密码,将用户john
的密码更改为newpassword123
,可以使用以下命令:
ALTER USER 'john'@'%' IDENTIFIED BY 'newpassword123';
或者使用旧版本的语法:
SET PASSWORD FOR 'john'@'%' = PASSWORD('newpassword123');
4、删除用户:使用DROP USER
命令删除用户,删除用户john
,可以使用以下命令:
DROP USER 'john'@'%';
四、FAQs
问:如何在MySQL中查看所有数据库?
答:要查看MySQL中的所有数据库,可以使用以下SQL命令:
SHOW DATABASES;
这将列出当前MySQL服务器上所有的数据库名称。
问:如何更改MySQL用户的主机限制?
答:要更改MySQL用户的主机限制,可以使用CREATE USER
或ALTER USER
命令中的@host
部分来指定新的主机名或IP地址范围,如果想让用户john
只能从特定IP地址192.168.1.100
连接,可以使用以下命令:
ALTER USER 'john'@'%' IDENTIFIED BY 'password123';
这将把用户john
的主机限制从任何主机(%)更改为特定IP地址192.168.1.100
,执行此操作前需要确保该用户已经存在,并且您有足够的权限来执行此操作。
五、小编有话说
MySQL的默认数据库和表是其强大功能的基础,它们不仅帮助我们管理和保护数据,还提供了丰富的性能监控和分析工具,作为数据库管理员或开发人员,了解这些默认组件的作用和使用方法是非常重要的,我们也要注意安全性和权限控制,确保只有授权用户才能访问敏感数据和执行关键操作,希望本文能够帮助大家更好地理解和管理MySQL数据库。