MySQL的下载、安装、配置

MySQL的4大版本

  • MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。
  • MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
  • MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个 Server。需要在社区版或企业版的基础上使用。
  • MySQL Cluster CGE 高级集群版,需付费。

​ 此外,官方还提供了 MySQL Workbench (GUITOOL)一款专为MySQL设计的图形界面管理工具。MySQLWorkbench又分为两个版本,分别是社区版 (MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。

安装配置过程

https://www.bilibili.com/video/BV16L4y1b75R?p=8&vd_source=eba51e546b009d19fac1699fcaa8bab1

客户端的登录与退出

登录

  • 格式:

    1
    mysql -h 主机名 -P 端口号 -u 用户名 -p密码
  • 举例:

    1
    mysql -h localhost -P 3306 -u root -p12345678 # 这里我设置的root用户的密码是12345678
  • 注意:

    • -p与密码之间不能有空格,其他参数名与参数值之间可以有空格也可以没有空格
    • 密码建议在下一行输入,保证安全
    1
    2
    mysql -h localhost -P 3306 -u root -p
    Enter password:****
    • 客户端和服务器在同一台机器上,所以输入localhost或者IP地址127.0.0.1。同时,因为是连接本机,-hlocalhost就可以省略,如果端口号没有修改,-P3306也可以省略。简写成:
    1
    2
    mysql -u root -p
    Enter password:****

查看版本信息

未登录

1
2
3
mysql -V

mysql --version

登录后

1
mysql> select version();

退出

1
2
3
exit

quit

MySQL演示使用

使用演示

  1. 查看所有的数据库
1
show databases;
  • “information_schema”是 MySQL 系统自带的数据库,主要保存 MySQL 数据库服务器的系统信息, 比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件所在的文件夹和系统使用的文件夹等
  • “performance_schema”是 MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。
  • “sys”数据库是 MySQL 系统自带的数据库,主要作用是以一种更容易被理解的方式展示 MySQL 数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL 的技术性能。
  • “mysql”数据库保存了 MySQL 数据库服务器运行时需要的系统信息,比如数据文件夹、当前使用的字符集、约束检查信息,等等
  1. 创建自己的数据库
1
2
3
create database 数据库名;
#创建testmysql数据库,该名称不能与已经存在的数据库重名。
create database testmysql;
  1. 使用自己的数据库
1
2
3
use 数据库名;
#使用testmysql数据库
use testmysql;

说明:如果没有使用use语句,后面针对数据库的操作也没有加“数据名”的限定,那么会报“ERROR 1046 (3D000): No database selected”(没有选择数据库)。使用完use语句之后,如果接下来的SQL都是针对一个数据库操作的,那就不用重复use了,如果要针对另 一个数据库操作,那么要重新use。

  1. 查看某个库的所有表格
1
2
show tables; #要求前面有use语句 
show tables from 数据库名;
  1. 创建新的表格
1
2
3
4
create table 表名称( 
字段名 数据类型,
字段名 数据类型
);

说明:如果是最后一个字段,后面就不用加逗号,因为逗号的作用是分割每个字段。

1
2
3
4
5
#创建学生表
create table student(
id int,
name varchar(20) #名字最长不超过20个字符
);
  1. 查看一个表的数据
1
select * from 数据库表名称;
1
2
#查看学生表的数据
select * from student;
  1. 添加一条记录
1
2
3
4
insert into 表名称 values(值列表);
#添加两条记录到student表中
insert into student values(1,'张三');
insert into student values(2,'李四');
  1. 查看表的创建信息
1
2
3
show create table 表名称
#查看student表的详细创建信息
show create table student;
1
2
3
4
5
6
7
8
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| student | CREATE TABLE `student` (
`id` int DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------+

MySQL 8.0支持插入中文,5.0不支持,需要修改字符集。

  1. 查看数据库的创建信息
1
2
3
show create database 数据库名
#查看testmysql数据库的详细创建信息
show create database testmysql;
1
2
3
4
5
+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
| testmysql | CREATE DATABASE `testmysql` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+-----------+-------------------------------------------------------------------------------------------------------------------------------------+
  1. 删除表格
1
2
3
drop table 表名称;
#删除学生表
drop table student;
  1. 删除数据库
1
2
3
drop database 数据库名;
#删除testmysql数据库
drop database testmysql;

编码设置

在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL 8.0 开始,数据库的默认编码改为 utf8mb4 ,从而避免了上述的乱码问题。

MySQL图形化管理工具

MySQL图形化管理工具极大地方便了数据库的操作与管理,常用的图形化管理工具有:MySQL Workbench、phpMyAdmin、Navicat Preminum、MySQLDumper、SQLyog、dbeaver、MySQL ODBC Connector。

MySQL Workbench

MySQL官方提供的图形化管理工具MySQL Workbench完全支持MySQL 5.0以上的版本。MySQL Workbench 分为社区版和商业版,社区版完全免费,而商业版则是按年收费。

MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它包含了用于创建复杂的数据建模ER模型,正向和逆向数据库工程,也可以用于执行通常需要花费大量时间的、难以变更和管理的文档任务。

下载地址: http://dev.mysql.com/downloads/workbench/

Navicat MySQL是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何3.21或以上版本的 MySQL一起工作,支持触发器、存储过程、函数、事件、视图、管理用户等,对于新手来说易学易用。 其精心设计的图形用户界面(GUI)可以让用户用一种安全简便的方式来快速方便地创建、组织、访问和 共享信息。Navicat支持中文,有免费版本提供。

下载地址: http://www.navicat.com/

SQLyog

SQLyog 是业界著名的 Webyog 公司出品的一款简洁高效、功能强大的图形化 MySQL 数据库管理工具。这款工具是使用C++语言开发的。该工具可以方便地创建数据库、表、视图和索引等,还可以方便地进行插入、更新和删除等操作,同时可以方便地进行数据库、数据表的备份和还原。该工具不仅可以通过 SQL文件进行大量文件的导入和导出,还可以导入和导出XML、HTML和CSV等多种格式的数据。

下载地址: http://www.webyog.com/

dbeaver

DBeaver是一个通用的数据库管理工具和 SQL 客户端,支持所有流行的数据库:MySQL、PostgreSQL、 SQLite、Oracle、DB2、SQL Server、 Sybase、MS Access、Teradata、 Firebird、Apache Hive、Phoenix、Presto等。DBeaver比大多数的SQL管理工具要轻量,而且支持中文界面。DBeaver社区版作为一个免费开源的产品,和其他类似的软件相比,在功能和易用性上都毫不逊色。

唯一需要注意是 DBeaver 是用Java编程语言开发的,所以需要拥有 JDK(Java Development ToolKit)环境。如果电脑上没有JDK,在选择安装DBeaver组件时,勾选“Include Java”即可。

下载地址: https://dbeaver.io/download/。

MySQL目录结构与源码

主要目录结构

  • 以MacOS系统为例
MySQL的目录结构 说明
bin目录 所有MySQL的可执行文件
/lib/plugin 插件目录
data目录 系统数据库和个人数据库所在的目录
/keyring/keyring 密钥环数据文件
/data/mysqld.local.err 错误日志
/data/mysqld.local.pid PID文件

MySQL源代码获取

采用C++开发,自行从官网获取。