MySQL 数据库管理基础

MySQLMySQLBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本项目中,你将学习如何在 MySQL 数据库中创建新用户、设置最大连接数以及配置二进制日志保留期。本项目旨在帮助你理解基本的数据库管理任务,以及如何使用 SQL 脚本实现自动化。

👀 预览

MySQL 数据库设置预览

🎯 任务

在本项目中,你将学习:

  • 如何在系统上启动 MySQL 服务
  • 如何创建无需密码即可本地登录的新用户
  • 如何设置数据库的最大连接数
  • 如何启用二进制日志的自动删除并设置日志保留期

🏆 成果

完成本项目后,你将能够:

  • 在 MySQL 数据库中管理用户账户和权限
  • 配置数据库设置以优化性能和维护
  • 使用 SQL 脚本自动化常见的数据库管理任务

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql(("MySQL")) -.-> mysql/TransactionManagementandSecurityGroup(["Transaction Management and Security"]) mysql(("MySQL")) -.-> mysql/SystemManagementToolsGroup(["System Management Tools"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/user("User Info Function") mysql/TransactionManagementandSecurityGroup -.-> mysql/grant_permission("Permission Granting") mysql/SystemManagementToolsGroup -.-> mysql/show_variables("Configuration Overview") mysql/SystemManagementToolsGroup -.-> mysql/mysqladmin("Admin Utility") subgraph Lab Skills mysql/select -.-> lab-301428{{"MySQL 数据库管理基础"}} mysql/source -.-> lab-301428{{"MySQL 数据库管理基础"}} mysql/user -.-> lab-301428{{"MySQL 数据库管理基础"}} mysql/grant_permission -.-> lab-301428{{"MySQL 数据库管理基础"}} mysql/show_variables -.-> lab-301428{{"MySQL 数据库管理基础"}} mysql/mysqladmin -.-> lab-301428{{"MySQL 数据库管理基础"}} end

启动 MySQL 服务

在这一步中,你将在系统上启动 MySQL 服务。请按照以下步骤完成此操作:

  1. 在你的系统上打开一个终端。
  2. 运行以下命令来启动 MySQL 服务:
sudo service mysql start

这将在你的系统上启动 MySQL 服务。

保存脚本

  1. ~/project 目录下创建一个名为 userBinLog.sql 的新文件。

  2. 将以下代码复制到 userBinLog.sql 文件中:

  3. 创建一个名为“Rong”的新用户,密码为空

    -- 创建一个名为“Rong”的新用户,密码为空
    CREATE USER 'Rong'@'localhost' IDENTIFIED BY '';

    这将创建一个名为“Rong”的新用户,密码为空,并允许该用户从本地机器登录。

  4. 将最大连接数设置为 50

    -- 将最大连接数设置为 50
    SET GLOBAL max_connections = 50;

    这将把最大连接数设置为 50。

  5. 将二进制日志保留期设置为 15 天

    -- 将二进制日志保留期设置为 15 天
    SET GLOBAL binlog_expire_logs_seconds = 15 * 24 * 60 * 60;

    这将把二进制日志保留期设置为 15 天。

运行脚本

  1. 通过运行以下命令打开 MySQL 命令行界面:

    mysql -uroot
  2. 在 MySQL 提示符下,运行以下命令来执行 userBinLog.sql 脚本:

    SOURCE ~/project/userBinLog.sql

    这将执行 userBinLog.sql 脚本中的 SQL 语句。

  3. 你现在已经完成了该项目。你可以通过运行以下 SQL 语句来验证结果:

    SHOW VARIABLES LIKE "%max_connections%";
    SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';
    use mysql;
    SELECT user, host FROM user WHERE user = 'Rong';

    这些语句将显示 max_connectionsbinlog_expire_logs_seconds 变量的当前值,以及你创建的用户。

你可以检查以下结果:

MariaDB [(none)]> SHOW VARIABLES LIKE "%max_connections%";
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| extra_max_connections | 1     |
| max_connections       | 50    |
+-----------------------+-------+
2 rows in set (0.001 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';
+----------------------------+---------+
| Variable_name              | Value   |
+----------------------------+---------+
| binlog_expire_logs_seconds | 1296000 |
+----------------------------+---------+
1 row in set (0.000 sec)

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> SELECT user, host FROM user WHERE user = 'Rong';
+------+-----------+
| User | Host      |
+------+-----------+
| Rong | localhost |
+------+-----------+
1 row in set (0.001 sec)
✨ 查看解决方案并练习

总结

恭喜你!你已经完成了这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。