《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)

image.png

1.1 MySQL 概览:版本、特性和生态系统

在这一节中,我们将深入探索 MySQL,这个在全球广泛使用的关系型数据库管理系统。无论你是初学者还是经验丰富的开发者,了解 MySQL 的基础知识都是至关重要的。

1.1.1 基础知识

  • 版本:MySQL 的版本历史可以追溯到 1995 年,经历了从 3.x 到 8.0 的演变。每个主要版本的发布都带来了性能改进、新特性和安全性增强。当前,MySQL 8.0 是最新的稳定版本,它引入了诸如窗口函数、公共表表达式(CTE)、角色管理、JSON 支持扩展等先进特性。
  • 特性
  • 存储引擎:MySQL 支持多种存储引擎,包括 InnoDB(支持事务处理,提供高可靠性)、MyISAM(适用于读取密集型应用)、Memory(数据存储在 RAM 中,提供快速访问)等。
  • 复制:MySQL 提供主从复制功能,支持数据的实时备份和读写分离,提高了数据库的可用性和扩展性。
  • 分区:通过将表中的数据分布到不同的分区来提高性能,特别是在处理大量数据时。
  • 安全性:包括网络层加密、SHA-256 密码认证、角色基的权限控制等。
  • 生态系统:MySQL 被广泛应用于各种在线应用、数据仓库、e-commerce 解决方案等场景。它与许多编程语言和框架(如 PHP、Java、Python、Ruby)紧密集成,支持跨平台运行(Linux、Windows、MacOS)。

1.1.2 重点案例:使用 Python 实现 MySQL 数据的 CRUD 操作

  • 假设我们正在开发一个博客系统,需要存储用户信息和博文内容。我们会使用 Python 的mysql-connector-python包来执行基本的 CRUD(创建、读取、更新、删除)操作。步骤
  1. 安装 mysql-connector-python 包。
pip install mysql-connector-python
  1. 连接到 MySQL 数据库。
import mysql.connector
conn = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="blogdb"
)
cursor = conn.cursor()
  1. 创建表格。
cursor.execute("CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))")
cursor.execute("CREATE TABLE posts (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), content TEXT, user_id INT, FOREIGN KEY(user_id) REFERENCES users(id))")
  1. 插入数据。
query = "INSERT INTO users (name, email) VALUES (%s, %s)"
values = ("John Doe", "john@example.com")
cursor.execute(query, values)
conn.commit()
  1. 查询数据。
cursor.execute("SELECT * FROM users")
for (name, email) in cursor:
  print(f"Name: {name}, Email: {email}")

1.1.3 拓展案例 1:使用 Python 实现 MySQL 数据备份**

对于生产环境中的数据库,定期备份是一项重要的维护任务。我们可以使用 Python 脚本来自动化这个过程。

步骤

  1. 使用 subprocess 模块调用 mysqldump 工具。
import subprocess
subprocess.run(["mysqldump", "-u", "username", "-p", "database_name", ">",
                "backup.sql"])
  1. 可以将此脚本设置为定期执行,实现自动化备份。

1.1.4 拓展案例 2:使用 Python 分析 MySQL 数据

在这个案例中,我们将使用 Python 的 pandas 库从 MySQL 数据库中读取数据,并进行简单的数据分析。

步骤

  1. 安装 pandassqlalchemy
pip install pandas sqlalchemy
  1. 读取数据并分析。
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+mysqlconnector://username:password@localhost/blogdb')
df = pd.read_sql_table('posts', con=engine)
print(df.describe())

通过以上案例,我们不仅了解了 MySQL 的基础知识,还通过实际应用案例深入探讨了如何使用 Python 与 MySQL 交互,涵盖了数据操作、备份和分析等常用场景,为读者提供了实用性强、贴近实际生产的学习资源。


1.2 安装和配置 MySQL

安装和配置 MySQL 是每个数据库管理员和开发者的基本技能。在 Mac OS 上,这个过程可以通过多种方式完成,包括使用 Homebrew、下载官方的 MySQL 安装包,或者通过 Docker。这一节将引导你通过这些步骤,确保你的 MySQL 服务器运行顺畅并准备好执行任务。

1.2.1 基础知识

  • 使用 Homebrew 安装:Homebrew 是 Mac OS 上最受欢迎的包管理器之一,它可以让安装 MySQL 变得非常简单。
  • 配置文件:MySQL 的配置文件通常位于 /etc/my.cnf 或者 /usr/local/etc/my.cnf,通过编辑这个文件,你可以调整 MySQL 服务器的设置,例如内存使用、端口号和默认的存储引擎。
  • 启动和停止 MySQL 服务:安装完成后,你需要知道如何启动和停止 MySQL 服务,以及如何设置为开机自启动。
  • 安全配置:运行 mysql_secure_installation 脚本来增强 MySQL 安装的安全性是一个好习惯,这包括设置 root 密码、删除匿名用户、禁用远程 root 登录等。

1.2.2 重点案例:使用 Homebrew 安装 MySQL 并进行初步配置

假设你是一个开发者,正在 Mac OS 上配置本地开发环境。使用 Homebrew 安装 MySQL 是一个快速开始的好方法。

步骤

  1. 打开终端,安装 Homebrew(如果尚未安装)。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  1. 使用 Homebrew 安装 MySQL。
brew install mysql
  1. 启动 MySQL 服务。
brew services start mysql
  1. 运行安全安装脚本。
mysql_secure_installation
  1. 连接到 MySQL。
mysql -u root -p

1.2.3 拓展案例 1:配置 MySQL 以优化 Mac OS 上的性能

开发者和数据库管理员经常需要调整 MySQL 配置,以优化本地环境中的性能。

步骤

  1. 找到 MySQL 的配置文件 my.cnf。如果不存在,请创建一个。
nano /usr/local/etc/my.cnf
  1. 添加或修改以下配置,以优化性能(根据你的机器配置调整数值)。
[mysqld]
max_connections = 50
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 128M
query_cache_size = 0
query_cache_type = 0
  1. 重启 MySQL 服务以应用更改。
brew services restart mysql

1.2.4 拓展案例 2:使用 Python 连接到配置好的 MySQL 实例并创建一个数据库

一旦 MySQL 安装并配置好,下一步就是开始使用它了。这个案例将展示如何使用 Python 连接到 MySQL 并创建一个新的数据库。

步骤

  1. 确保安装了 mysql-connector-python
pip install mysql-connector-python
  1. 使用 Python 脚本连接到 MySQL 并创建数据库。
import mysql.connector
conn = mysql.connector.connect(
  host="localhost",
  user="root",
  password="yourpassword"
)
cursor = conn.cursor()
cursor.execute("CREATE DATABASE mydatabase")

通过这些案例,你不仅学会了如何在 Mac OS 上安装和配置 MySQL,还学会了如何通过 Python 脚本与 MySQL 互动,从而为各种开发和生产任务打下坚实的基础。


1.3 基础命令和操作

掌握 MySQL 的基础命令和操作是进行有效数据库管理和开发的关键。这一节将涵盖如何使用这些基础命令来创建和管理数据库、表、以及执行数据的 CRUD(创建、读取、更新、删除)操作。

1.3.1 基础知识

  • 创建数据库CREATE DATABASE database_name;
  • 选择数据库USE database_name;
  • 创建表CREATE TABLE table_name (column1 datatype, column2 datatype, ...);
  • 插入数据INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
  • 查询数据SELECT * FROM table_name; 或更具体的查询 SELECT column1, column2 FROM table_name WHERE condition;
  • 更新数据UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  • 删除数据DELETE FROM table_name WHERE condition;
  • 删除表DROP TABLE table_name;
  • 删除数据库DROP DATABASE database_name;

1.3.2 重点案例:使用 Python 创建数据库和表,并插入数据

假设你需要为一个小型电商平台创建一个数据库,其中包含用户信息和订单信息。

步骤

  1. 连接到 MySQL。
import mysql.connector
conn = mysql.connector.connect(
  host="localhost",
  user="root",
  password="yourpassword"
)
cursor = conn.cursor()
  1. 创建数据库 ecommerce
cursor.execute("CREATE DATABASE ecommerce")
cursor.execute("USE ecommerce")
  1. 创建 usersorders 表。
cursor.execute("""
CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255),
  email VARCHAR(255) UNIQUE
)
""")
cursor.execute("""
CREATE TABLE orders (
  id INT AUTO_INCREMENT PRIMARY KEY,
  product_name VARCHAR(255),
  amount INT,
  user_id INT,
  FOREIGN KEY(user_id) REFERENCES users(id)
)
""")
  1. 插入数据到 users 表。
query = "INSERT INTO users (name, email) VALUES (%s, %s)"
values = [("Alice", "alice@example.com"), ("Bob", "bob@example.com")]
cursor.executemany(query, values)
conn.commit()

1.3.3 拓展案例 1:使用 Python 执行数据查询操作

在电商平台数据库中查询特定用户的所有订单。

步骤

  1. 查询 Alice 的用户 ID。
cursor.execute("SELECT id FROM users WHERE name = 'Alice'")
user_id = cursor.fetchone()[0]
  1. 查询基于用户 ID 的订单。
cursor.execute(f"SELECT * FROM orders WHERE user_id = {user_id}")
for (id, product_name, amount, user_id) in cursor:
  print(f"Order ID: {id}, Product: {product_name}, Amount: {amount}")

1.3.4 拓展案例 2:更新和删除数据

修改特定订单的数量,然后删除一个用户。

步骤

  1. 更新订单数量。
cursor.execute("UPDATE orders SET amount = 3 WHERE id = 1")
conn.commit()
  1. 删除用户 Bob
cursor.execute("DELETE FROM users WHERE name = 'Bob'")
conn.commit()

通过以上案例,你不仅学会了如何使用 Python 连接 MySQL 执行基本的数据库操作,还掌握了如何在实际项目中应用这些操作来管理数据。这些技能在数据库管理和数据操作中非常重要,可以为开发各种应用程序和服务提供坚实的基础。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL安装
MySQL安装
21 1
|
4天前
|
关系型数据库 MySQL Linux
在Linux系统中安装MySQL数据库
在Linux系统中安装MySQL数据库
36 3
|
4天前
|
Ubuntu 关系型数据库 MySQL
|
6天前
|
安全 关系型数据库 MySQL
解决centos7.0安装mysql后出现access defind for user@'localhost'的错误
在使用yum 安装完mariadb, mariadb-server, mariadb-devel后
10 0
|
9天前
|
关系型数据库 MySQL Linux
Linux下安装MySQL
Linux下安装MySQL
27 0
|
9天前
|
SQL 分布式计算 关系型数据库
Ubuntu上安装MySQL以及hive
Ubuntu上安装MySQL以及hive
|
9天前
|
关系型数据库 MySQL 数据库
mysqlTools 一分钟部署安装本mysql多个版本,解锁繁琐部署过程
mysqlTools 一分钟部署安装本mysql多个版本,解锁繁琐部署过程
303 2
|
9天前
|
关系型数据库 MySQL Linux
本地虚拟机centos7通过docker安装主从mysql5.7.21
本地虚拟机centos7通过docker安装主从mysql5.7.21
33 0
|
9天前
|
关系型数据库 MySQL 数据库
龙蜥操作系统上安装MySQL:步骤详解与常见问题解决
龙蜥操作系统上安装MySQL:步骤详解与常见问题解决
|
9天前
|
关系型数据库 MySQL Linux
在Centos7中:通过Docker安装MySQL5.7(保姆级)
在Centos7中:通过Docker安装MySQL5.7(保姆级)
161 0

推荐镜像

更多