### JavaWeb 学习笔记之 MySQL 配置与管理 #### MySQL 安装与配置注意事项 在进行 JavaWeb 开发时,MySQL 数据库是不可或缺的一部分。对于初学者来说,掌握正确的 MySQL 安装与配置方法至关重要。以下是关于 MySQL 安装、配置及常见问题解决的一些关键知识点。 ### MySQL 安装注意事项 1. **解压文件命名**: - 在解压 MySQL 压缩包时,请确保解压后的文件夹名称全部为英文,避免中文字符的使用。 - 如果使用中文作为文件夹名,在初始化过程中可能会遇到问题,例如无法生成 `data` 文件夹,导致 MySQL 服务无法正常启动。 2. **管理员权限运行 CMD**: - 通过 Windows 的 “C:\WINDOWS\System32” 目录下的搜索功能找到并打开 CMD 命令提示符窗口。 - 必须以管理员身份运行 CMD,以便执行 MySQL 的安装、配置等相关操作。 ### MySQL 配置文件详解 配置文件 `my.ini` 是 MySQL 启动时读取的重要文件之一,用于指定 MySQL 服务器的各种配置选项。以下是一些常见的配置项: 1. **端口号设置**: ```ini [mysqld] port=3306 ``` 此处设置 MySQL 的监听端口为 3306,默认情况下 MySQL 使用此端口。 2. **安装目录设置**: ```ini basedir=C:\\app\\MYSQL\\mysql-8.0.29-winx64 ``` 指定 MySQL 的安装目录路径。 3. **数据目录设置**: ```ini datadir=C:\\app\\MYSQL\\mysql-8.0.29-winx64\\data ``` 指定 MySQL 数据文件的存储位置。 4. **最大连接数**: ```ini max_connections=200 ``` 设置同时允许的最大连接数。 5. **连接错误限制**: ```ini max_connect_errors=10 ``` 设置允许连续尝试连接失败的最大次数,用于防止恶意攻击。 6. **字符集设置**: ```ini character-set-server=utf8 ``` 设置服务器端使用的字符集,默认为 UTF-8。 7. **默认存储引擎**: ```ini default-storage-engine=INNODB ``` 设置新建表的默认存储引擎为 InnoDB。 8. **认证方式**: ```ini default_authentication_plugin=mysql_native_password ``` 设置默认的认证插件。 9. **客户端配置**: ```ini [mysql] default-character-set=utf8 ``` 设置客户端的默认字符集。 10. **客户端连接端口**: ```ini [client] port=3306 default-character-set=utf8 ``` 设置客户端连接 MySQL 服务器时使用的端口。 ### MySQL 初始化与服务管理 1. **初始化 MySQL**: ```bash mysqld --initialize-insecure ``` 此命令用于初始化 MySQL 数据库。 2. **注册 MySQL 服务**: ```bash mysqld -install ``` 将 MySQL 注册为 Windows 服务。 3. **查看服务列表**: ```bash services.msc ``` 通过此命令打开服务管理控制台,查看所有已安装的服务。 4. **启动 MySQL 服务**: ```bash net start mysql ``` 启动 MySQL 服务。 5. **停止 MySQL 服务**: ```bash net stop mysql ``` 停止 MySQL 服务。 6. **卸载 MySQL 服务**: ```bash mysqld --remove ``` 卸载 MySQL 服务。 7. **设置管理员密码**: ```bash mysqladmin -u root password 123456 ``` 设置 MySQL 管理员账户 `root` 的密码。 ### SQL 语句与操作 1. **SQL 数据模型**: - 关系型数据库:MySQL 属于关系型数据库管理系统 (RDBMS),数据以表格形式存储。 - SQL 语言:包括 DDL (Data Definition Language)、DML (Data Manipulation Language)、DQL (Data Query Language) 等。 2. **数据类型**: - MySQL 支持多种数据类型,如字符串类型 (VARCHAR、CHAR)、数值类型 (INT、FLOAT)、日期时间类型 (DATE、TIMESTAMP) 等。 3. **Navicat**: - Navicat 是一款常用的图形化 MySQL 管理工具,方便进行数据库管理、数据导入导出等操作。 4. **基础查询**: - 示例:`SELECT * FROM 表名;` - 不建议使用 `*` 进行查询,因为这将返回表中的所有列,可能造成不必要的性能损耗。 5. **条件查询**: - 示例:`SELECT * FROM 表名 WHERE 条件表达式;` 6. **模糊查询**: - 示例:`SELECT * FROM 表名 WHERE 字段 LIKE '%关键词%';` 7. **排序查询**: - 示例:`SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;` 8. **聚合函数**: - 注意:聚合函数不会计算 `NULL` 值。 9. **分组查询**: - 示例:`SELECT 字段, COUNT(*) FROM 表名 GROUP BY 字段;` 10. **分页查询**: - 示例:`SELECT * FROM 表名 LIMIT 起始位置, 查询数量;` 11. **约束**: - 自增长:`AUTO_INCREMENT`,通常用于主键字段。 - 外键约束:确保参照完整性,需先创建父表,再创建子表,并先插入父表数据,再插入子表数据。 12. **多表查询**: - 内连接:`INNER JOIN`,返回两个表中有匹配的数据行。 - 外连接:`LEFT JOIN` 和 `RIGHT JOIN`,返回左表或右表所有数据行,即使在另一个表中没有匹配行。 13. **子查询**: - 单行单列:`SELECT 字段 FROM 表名 WHERE 字段 IN (子查询);` - 多行单列:`SELECT 字段 FROM 表名 WHERE 字段 IN (子查询);` - 多行多列:通过连接实现。 通过以上知识点的学习,可以帮助 JavaWeb 开发者更好地理解和使用 MySQL 数据库,提高开发效率和应用质量。
- 粉丝: 3
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助