MySQL学习笔记:协议、SQL组件与安全操作

需积分: 16 1 下载量 197 浏览量 更新于2024-07-18 收藏 264KB PDF 举报
"Mysql学习笔记——闻骏" MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它基于SQL(Structured Query Language)语言。SQL起初被称为SEQUEL,后因商标问题改名为SQL。SQL语言主要包含以下几个部分: 1. DDL(Data Definition Language):用于创建和修改数据库结构,如创建、修改和删除数据库、表、索引等对象。 2. DML(Data Manipulation Language):用于插入、更新和删除数据。 3. 完整性定义语言(DDL的一部分):确保数据的完整性和一致性,例如定义主键、外键、唯一性约束等。 4. 视图定义:创建和管理虚拟表,即视图,它们是基于一个或多个表的查询结果。 5. 事务控制:用于管理数据库操作的原子性、一致性、隔离性和持久性,如BEGIN、COMMIT、ROLLBACK等命令。 6. 嵌入式SQL和动态SQL:将SQL语句集成到其他编程语言中,嵌入式SQL在编译时确定,动态SQL在运行时确定。 7. 授权:DCL(Data Control Language)用于管理用户权限和访问控制,如GRANT和REVOKE命令。 与MySQL交互的方式有多种,包括: - 嵌入式SQL:在应用程序中直接编写SQL语句,通常在编译时处理。 - 动态SQL:通过编程语言的函数或方法建立连接,运行时动态构建和执行SQL语句。 MySQL服务器(MYSQLD)和客户端(MYSQL)是两个关键组件,MYSQLD负责处理数据库请求,而MYSQL是用于与数据库交互的命令行工具。MySQL Proxy则用于实现读写分离,提高系统性能。 MySQL的配置文件通常存在于多个路径下,按顺序读取,以最后一个找到的为准,这些路径包括: - /etc/my.cnf - /etc/mysql/my.cnf - $MYSQL_HOME/my.cnf - 编译目录下的my.cnf - ~/.my.cnf 安装MySQL时,系统会创建5个用户,其中3个root用户和2个匿名用户。root用户的主机限制分别为@127.0.0.1、@localhost和@hostname,而@localhost和@hostname是匿名用户。如果忘记或丢失密码,可以通过启动MySQL服务时跳过权限表(mysqld_safe --skip-grant-tables&),然后更新用户密码并刷新权限。 MySQL密码的修改方式有: - 使用mysqladmin命令:mysqladmin -u root -h common password '新密码' -p,之后输入旧密码。 - 在MySQL客户端内部:set password for 用户名@主机名 = password('新密码')。 需要注意的是,使用-h指定主机名时,如果用户只允许本机登录,将导致无法连接。因此,正确设置用户主机限制和密码是管理MySQL账户安全的关键。