MySQL数据库概述
MySQL数据库是经典的关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一款由C和C++编写的开放源码的小型数据库,它为多种编程语言提供了API。
关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体和实体之间的各种联系均用关系模型来表示。标准数据查询语言SQL(Standard Query Lanague)就是一种基于关系数据的语言,这种语言执行对关系数据库中的数据的检索和操作。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。简单来说,关系型数据库,就是由多张能互相连接的二维行列表格组成的数据库。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系模型中常用的概念:
关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名
元组:可以理解为二维表中的一行,在数据库中经常被称为记录
属性:可以理解为二维表中的一列,在数据库中经常被称为字段
域:属性的取值范围,也就是数据库中某一列的取值限制
关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成
关系模式:指对关系的描述。其格式为:关系名(属性1,属性2, ... ... ,属性N),在数据库中称为表结构。
数据库事物
事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元。可以认为事物就是一组不可分割的SQL语句。
事务的特性也:也称为ACID特性。即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
1.原子性:原子性是指事务中包含的所有操作要么都做,要么都不做,保证数据库是一致的。
2.一致性:一致性是指数据库在事务操作前和事务处理后,其中的数据必须都满足业务规则约束。
3.隔离性:隔离性是数据库允许多个并发事务同时对齐数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
4.持久性:持久性表示为,事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
注:数据库事务必须具备ACID特性,ACID是Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性。
数据库系统、数据库管理系统和数据库
数据库系统(DataBase System)简称DBS,包括数据库(DataBase)简称DB、数据库管理系统(DataBase Management System)简称DBMS、应用系统、数据库管理员(DataBase Administrator)简称DBA 。所以DBS是个大的概念 ,DB是专门存数据的集合 ,DBMS是由DBA对DB的查询、更新、删除、修改操作的。DBMS用来操纵和管理DB的软件,用于建立、使用和维护DB。它对DB进行统一的管理和控制,以保证DB的安全性和完整性,用户可以通过DBMS访问DB中的数据,DBA也可以通过DBMS进行DB的维护工作,它可使多个应用程序和用户拥有不同的方法在同时或不同时刻去建立、修改和询问DB(也就是说DBMS可以将控制权发挥到极致(也就是所说的安全性))。 DB是长期存储在计算机内的有组织、可共享的大量的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。DB(数据库)是保存数据的容器,通常是一个文件或者一组文件,从SQL的角度看数据库就是一个以某种有组织的方式存储的数据集合。数据库通常是保存在硬盘上的文件,但也可以不是,至于数据库到底是什么其实并不重要,因为你并不直接访问数据库,你使用的是DBMS(数据库管理系统),诸如Oracle、MySQL等,它替你访问数据库。
DBS中的“系统”是指能够提供一系列数据库相关服务组件的有机结合体。它应该包括:DB、DBMS(以及开发工具)、应用系统、DBA和用户构成。所以联系就是DBS包括DBMS和DB。Oracle就是数据库管理系统,也称之为关系型数据库管理系统(Relation Database Manager System),简称RDBMS。
CentOS7安装MySQL数据库
1.首先下载mysql的repo源,因为CentOS7的默认源里没有
使用命令:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2.安装mysql-community-release-el7-5.noarch.rpm包
使用命令:
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包以后会在/etc/yum.repos.d/目录下得到两个源:mysql-community.repo和mysql-community-source.repo
3.安装MySQL软件
sudo yum install -y mysql-server
按照提示进行安装即可,如果最终显示Completed,那么表示已经安装成功。
4.设置开机启动
systemctl enable mysqld.service
5.检查是否已经安装了开机自动启动
systemctl list-unit-files | grep mysqld
如果执行命令的结果如上,则说明已经完成自动启动安装。
6.设置开启服务
systemctl start mysqld.service
7.查看MySQL的当前状态
service mysqld status 或者systemctl status mysqld.service
执行结果:
如上图所示,表示mysql Server端已经启动成功。
8.其它几条MySQL的启动命令
service mysqld stop 停止mysql
service mysqld restart 重启mysql
service mysqld start 启动mysql
9.以root用户无密码登录数据库(root用户是MySQL的默认用户,密码是在安装过程中设置的)
mysql -u root -p (直接点击回车,密码为空)
//在第一次安装的情况下,如果默认root用户的密码是空,那么可以直接在bash输入:
mysql 进入数据库管理系统的使用界面
10.选择数据库(登录mysql后执行)
use mysql;
在重置密码时需要先登录数据库。
11.为root用户设置密码(登录mysql之后输入命令)
update user set password=password('123456') where user='root';
执行:
flush privileges;
12.退出MySQL数据库管理系统(在mysql环境下)
exit;
至此,MySQL就安装成功了。
13.查看所有数据库(在mysql环境下)
show databases;
14.查看数据库管理系统的所有用户(在mysql环境下)
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user
15.查看MySQL的安装目录
whereis mysql
16.查看当前正在运行的mysql 的版本(我这个是5.6)
yum repolist enabled | grep mysql
17.查看mysql的版本
yum repolist all | grep mysql
18.配置连接,以使得数据库管理系统客户端能够远程访问服务端(登录mysql后使用如下命令)
mysql>grant all on *.* to admin@'%' identified by'123456' with grant option; //[admin]是远程连接的【用户名】,[123456]是远程连接的【密码】
flush privileges;
19.在windows端安装mysql客户端软件
数据库管理系统有两种,一种是C/S模式的,MySQL就是这种,所以,我们接下来还需要在本地机器上安装一个MySQL客户端,来远程访问刚才安装好的服务端。
我使用的是EMS SQL Manager,下面是EMS SQL Manager的中文配置方法。
2.下载mymanager_lite_exe压缩包
这个是免安装的,解压之后直接双击MyManager.exe 就可使用SQL Manager,解压后的文件夹树如下:
2.添加中文包
菜单栏选择Options->Environment Options->Localization,进入如下界面:(首先将下载好的chinese.lng中文语言包拷贝到languages文件夹下)
点击上图中的Add按钮,按照提示添加你的中文语言包路径,添加好之后重启软件。接下来,在主菜单选择Options->select program language 找到你刚才添加的中文语言包的名字,选中它,确定,此时,可以看到软件界面是中文的,如下图:
3.客户端安装好了,我们来使用它远程连接刚才在linux上安装好的MySQL服务端,因为我的MySQL服务端是搭建在阿里云服务器上的,所以如果要正常使用还需要配置安全组。
4.使用SQL Manager Lite For MySQL连接远程服务端
在主菜单中单击数据库,进入如上图所示的界面,Host name是你的远程主机的IP地址,User name是数据库的用户名,Password是对应的密码。然后点击下一步即可。
接下来,右键单击下图打了马赛克的部分:
选择Connect to database,输入用户名、密码就可以连接到远程MySQL server端了。
这个MySQL客户端是第一次使用,如果有什么不对的地方敬请指正。
注:使用MySQL时,DBMS带有一个名为mysql的命令行实用程序,这是一个纯文本工具,通常作为MySQL安装程序的一部分来安装,用来执行SQL语句。另外,MySQL的创建者发布了一个名为mysql Workbench的交互工具,通常需要独立下载和安装,在学习MySQL时可以使用这个工具,下载地址:https://dev.mysql.com/downloads/file/?id=479196。
从命令行使用mysql时,在mysql>提示下输入sql语句,每条语句必须以分号(;)结束。结果将显示在屏幕上。