1. 概述
1.1 MySQL简述
- MySQL原本是一个开放源码的关系型数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。
- MySQL在过去由于 性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用
- 但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenSolaris的发展,因此导致自由软件社群们对于Oracle是否还会持续支持 MySQL社群版(MySQL之中唯一的免费版本 有所隐忧,MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。而原先一些使用MySQL的开源软件逐渐转向MariaDB或其它的数据库
1.2 Mysql有哪些特点
- MySQL是一个单进程多线程、支持多用户、基于客户机/服务器(Client/Server简称C/S)的关系数据库管理系统 。有以下特点:
- 性能高效
- 跨平台支持
- 简单易用
- 开源
- 支持多用户
1.3 常见的专业名词
-
SQL即Structure Query Language(结构化查询语言)
-
DB即DataBase(数据库),数据库按照数据结构来组织,存储和管理数据的仓库。数据库提供了很多功能,可以通过SQL语句来定义来操作数据
-
DBMS即DataBase Management System(数据库管理系统),操作和管理数据库的大型软件,用于建立、使用和维护数据库
-
RDBMS即Relational DataBase Management System(关系型数据库管理系统),关系型数据库使用表来保存数据,使用表和表之间的关系来处理数据 还为数据的安全性、完整性、并发控制和数据恢复提供了保证。常见的数据库服务软件:Oracle、MySQL(Oracle公司);SQL Server、Access(微软)
-
关系型数据库的术语:
- 关系:一张二维表,每个关系必须有一个关系名,也就是俗称的表名
- 字段/属性:二维表中的一列
- 记录/元祖:二维表中的一行
- 超键(super key):在关系中能唯一标识元祖的属性成为关系模式的超键
- 候选键(candidate key):不含有多余属性的超键
- 主键(primary key):用户选作元祖标识一个候选键
- 外键:用于联合两张表
- 范式:符合某一级别的关系模式的集合,构造数据库的表必须遵循一定的规则
- 索引:将表中的一个或多个字段中的数据复制一份另存,并且这些数据需要按特定次序排序存储
1.4 SQL语句
- DDL:Data Defination Language,数据定义语言。
- CREATE:创建
- DROP:删除
- ALTER:修改
- DML:Data Manipulation Language,数据操纵语言
- INSERT:向表中插入数据
- DELETE:删除表中数据
- UPDATE:更新表中数据
- SELECT:查询表中数据
- DCL:Data Control Language,数据控制语言
- GRANT:授权
- REVOKE:移除授权
2. MySQL安装与配置
2.1 安装方式
mysql有三种安装方式:
- 源代码:编译安装
- 二进制格式的程序包:通过解压程序包,并进行简单配置即可使用
- 程序包管理器管理的程序包
- OS Vendor:操作系统发行商提供的
- 项目官方提供的
2.2 安装MySQL
1.下载并安装MySQL官方的下载源
[root@node3 ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
[root@node3 ~]# ls
mysql57-community-release-el7-10.noarch.rpm
2.使用yum安装
[root@node3 ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
3.安装MySQL服务器
[root@node3 ~]# yum -y install mysql-community-server
2.3 配置MySQL
1.启动MySQL,确定3306端口号已经监听
[root@node3 ~]# systemctl start mysqld
[root@node3 ~]# ss -antl|grep 3306
LISTEN 0 80 :::3306 :::*
2.在日志文件中找出临时密码
[root@node3 ~]# grep "password" /var/log/mysqld.log
2020-05-19T04:11:49.636055Z 1 [Note] A temporary password is generated for root@localhost: O2QsltNbi8:_
3.进入数据库
[root@node3 ~]# mysql -uroot -pO2QsltNbi8:_
4.设置新密码
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
5.卸载yum reposity防止每次更新
[root@node3 ~]# yum -y remove mysql57-community-release-el7-10.noarch