还在用脚部署MySQL?从零基础到精通,收藏这篇就够了!


MySQL,作为数据库界的“扛把子”,那地位杠杠的!无论你是想搭个小网站,还是搞个企业级应用,它都是个不错的选择。今天,咱们就来唠唠嗑,用最接地气的方式,把MySQL 从入门到精通,安排得明明白白!


1. 啥是MySQL?咱先唠五毛钱的

MySQL 这玩意儿,原本是瑞典 MySQL AB 公司的“娃”,后来被 Oracle 这家“土豪”公司给收了。它就像个“老黄牛”,能同时服务很多人,还能在 Linux、Windows、macOS 这些不同的“地盘”上跑。

它的“超能力”有这些:
  • 白嫖还高效:社区版不要钱,随便用!特别适合咱们这种想省钱的小伙伴。

  • 性能怪兽:InnoDB、MyISAM 这些存储引擎,让它能hold住海量数据,速度嗖嗖的。

  • 能屈能伸:分布式数据库、主从复制、分区这些高级功能,让它能适应各种复杂的场景。

  • 傻瓜式操作:官方提供了超多工具和文档,就算你是小白,也能轻松上手。

2. 装MySQL,就像搭积木一样简单

2.1 Linux 上装 MySQL(Ubuntu 亲测有效):
sudo apt update  # 先更新一下软件列表,就像给手机升级一样
sudo apt install mysql-server # 开始安装 MySQL 服务
sudo systemctl start mysql # 启动 MySQL 服务
sudo systemctl enable mysql # 设置开机自启,省得每次手动启动
2.2 Windows 上装 MySQL:
  1. 去官网下载 MySQL 安装包(.msi 文件),就像下载游戏一样。

  2. 双击运行,一路“下一步”,记得设置 root 用户的密码,这可是你的“管理员密码”。

2.3 给MySQL“体检”一下

装好之后,跑一下这个命令,做个安全配置:

sudo mysql_secure_installation # 就像给新买的电脑装个杀毒软件
2.4 连接MySQL,开始你的表演

用命令行连接 MySQL,就像打开游戏的客户端:

mysql -u root -p # 输入你的 root 密码,就可以进去了

3. 数据库基础操作,像玩RPG游戏一样

3.1 创建数据库,就像创建一个新的游戏角色
CREATE DATABASE mydatabase; # 创建一个名叫 mydatabase 的数据库
3.2 选择数据库,就像选择游戏角色
USE mydatabase; # 告诉 MySQL,我们要在这个数据库里玩了
3.3 删除数据库,就像删掉一个不喜欢的游戏角色
DROP DATABASE mydatabase; # 删掉 mydatabase 数据库,操作需谨慎!

4. SQL 语法,你的“魔法咒语”

4.1 数据定义语言(DDL),定义数据的“骨架”
创建表,就像设计游戏角色的属性
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY, -- id,自增长,主键,每个角色都有一个唯一的 id
    username VARCHAR(50) NOT NULL, -- 用户名,不能为空
    email VARCHAR(100) NOT NULL, -- 邮箱,不能为空
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认是当前时间
);
修改表结构,就像给角色加个新技能
ALTER TABLE users ADD COLUMN age INT; -- 给 users 表增加一个 age 列,用来记录年龄
删除表,就像把整个角色都删掉
DROP TABLE users; # 删掉 users 表,数据都没了!
4.2 数据操作语言(DML),给数据“注入灵魂”
插入数据,就像创建一个新的游戏角色
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com'); # 插入一条新的用户数据
更新数据,就像给角色升级
UPDATE users SET email = 'john_new@example.com' WHERE id = 1; # 把 id 为 1 的用户的邮箱更新一下
删除数据,就像把角色踢出队伍
DELETE FROM users WHERE id = 1; # 删掉 id 为 1 的用户
4.3 数据查询语言(DQL),寻找你想要的数据
查询数据,就像查看你的角色信息
SELECT * FROM users; # 查询 users 表的所有数据
条件查询,就像筛选特定属性的角色
SELECT * FROM users WHERE age > 18; # 查询年龄大于 18 岁的用户
排序与分页,就像给角色列表排序
SELECT * FROM users ORDER BY created_at DESC LIMIT 10 OFFSET 20; # 按照创建时间倒序排列,取第 21-30 条数据
4.4 数据控制语言(DCL),分配权限,就像分配游戏管理员
授权,给用户分配权限
GRANT SELECT, INSERT ON mydatabase.* TO 'username'@'localhost'; # 允许 username 用户在 localhost 上对 mydatabase 数据库的所有表进行 SELECT 和 INSERT 操作
撤销权限,收回用户的权限
REVOKE INSERT ON mydatabase.* FROM 'username'@'localhost'; # 收回 username 用户在 localhost 上对 mydatabase 数据库的所有表的 INSERT 权限

5. 索引与优化,让你的查询飞起来

5.1 创建索引,就像给书加个目录
CREATE INDEX idx_username ON users(username); # 给 users 表的 username 列创建一个索引
5.2 查看索引,看看你的“目录”
SHOW INDEX FROM users; # 查看 users 表的所有索引
5.3 删除索引,删掉不需要的“目录”
DROP INDEX idx_username ON users; # 删掉 users 表的 idx_username 索引
5.4 查询优化,让你的查询更快
  • 使用 EXPLAIN 分析查询性能:
EXPLAIN SELECT * FROM users WHERE age > 18; # 分析这条查询语句的性能,看看哪里可以优化
  • 避免使用 SELECT *,只选择需要的列。

  • 使用合适的索引,避免全表扫描。

6. 事务与锁,保证数据的安全

6.1 事务,要么一起成功,要么一起失败

事务是一组原子性的操作,就像玩游戏里的“连招”,要么全部成功,要么全部失败。

开启事务
START TRANSACTION; # 开始一个事务
提交事务
COMMIT; # 提交事务,所有操作生效
回滚事务
ROLLBACK; # 回滚事务,撤销所有操作
6.2 锁,防止数据被“抢”

MySQL 支持行级锁和表级锁,InnoDB 存储引擎默认使用行级锁。

显式加锁,锁定一行数据
SELECT * FROM users WHERE id = 1 FOR UPDATE; # 锁定 id 为 1 的用户,防止其他事务修改

7. 备份与恢复,数据的“后悔药”

7.1 备份数据库,就像给游戏存档
mysqldump -u root -p mydatabase > mydatabase_backup.sql # 备份 mydatabase 数据库到 mydatabase_backup.sql 文件
7.2 恢复数据库,读档!
mysql -u root -p mydatabase < mydatabase_backup.sql # 从 mydatabase_backup.sql 文件恢复 mydatabase 数据库

8. 常见问题与解决方案,打怪升级

8.1 忘记 root 密码,悲剧了!
  1. 停止 MySQL 服务:

    bash sudo systemctl stop mysql # 停止 MySQL 服务

  2. 启动 MySQL 并跳过权限检查:

    bash sudo mysqld_safe --skip-grant-tables & # 启动 MySQL 并跳过权限检查

  3. 登录 MySQL 并修改密码:

    sql UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; # 修改 root 用户的密码 FLUSH PRIVILEGES; # 刷新权限

  4. 重启 MySQL 服务。

8.2 数据库连接数过多,服务器要崩溃了!
  • 增加最大连接数:
SET GLOBAL max_connections = 500; # 增加最大连接数到 500
  • 优化查询,减少长连接。
8.3 数据库性能下降,卡成PPT!
  • 检查慢查询日志:
SHOW VARIABLES LIKE 'slow_query_log'; # 查看慢查询日志是否开启
  • 优化慢查询,添加索引。

总结

MySQL 就像一个功能强大的瑞士军刀,掌握了它,你就能在数据世界里游刃有余。希望这篇“葵花宝典”能帮助你快速上手 MySQL,并在实际项目中大显身手!记住,多实践,多思考,你也能成为 MySQL 大神!

如果觉得这篇“秘籍”对你有帮助,记得点个赞,分享给更多的小伙伴哦!

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值