一、MySQL数据库介绍
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
1.1 MySQL特点和优势
MySQL开放源代码且无版权制约,自主性及使用成本低。
MySQL性能卓越、服务稳定,很少出现异常宕机。
MySQL支持多种操作系统,提供多种API接口,支持多种开发语言。这些开发语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
MySQL体积小,安装方便,易于维护。
MySQL是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统。
1.2 RDBMS 特点
数据库(DATABASE)是按照数据结构来组织、存储和管理数据的仓储;
关系型数据库管理系统(RDBMS)来存储和管理的大数据量,所谓的关系型数据库是建立在关系模型
- 数据以表的形式出现
- 每行为各种记录名称
- 每列为记录名称所对应的数据域
- 许多的行和列组成一张表单
- 若干的表单组成database
自己的理解:
数据库服务器:装有MySQL软件的计算机
数据库管理软件:MySQL
数据库/库:文件夹
表:文件
记录:一个事物的一系列典型的特征:金鞍少年,male,18
数据 :事务的特征,如 name=“金鞍少年”
1.3 RDBMS 术语
掌握MySQL 数据库必须了解一些RDBMS 相关的术语:
- 数据库: 数据库是一些关联表的集合
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
- 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余: 存储两倍数据,冗余可以使系统速度更快。(表的规范化程度越高,表与表之间的关系就越多;查询时可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度。
- 学生的信息存储在student表中,学校信息存储在 school 表中。通过student表中的dept_id字段与school 表建立关联关系。如果要查询一个学生所在系的名称,必须从student表中查找学生所在院系的编号(dept_id),然后根据这个编号去school 查找系的名称。如果经常需要进行这个操作时,连接查询会浪费很多的时间。因此可以在student表中增加一个冗余字段dept_name,该字段用来存储学生所在院系的名称。这样就不用每次都进行连接操作了。
- 主键: 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据(主键是用来标识数据的,假如有多个相同的数据,那么就需要用主键来区分数据;好比同名同姓,可以使用×××号来区分,这个主键是唯一的,在数据库中不会重复。)。
- 外键: 外键用于关联两个表(当前表中的这个键连接了其他表的别的键,当前表的这个键就叫做外键)。
- 复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引(比如将多列的数据字段,变成一个索引)。
- 索引: 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录(比如在5万条数据中查找一个值,不需要遍历所有数据来查找,可以类似书籍目录的方式,直接定位到数据)(查找到数据不是一下就找到,而是通过一种算法来查找,但查找的次数比较少)。
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
二、MySQL的安装方法
2.1 Window上安装MySQL
安装步骤
#1、下载:MySQL Community Server 5.7.29
http://dev.mysql.com/downloads/mysql/
# 最新版本为8.0.19 但是一般公司为了数据的稳定性和安全性都倾向于使用稳定可靠的版本,所以我是用的是5.7.29版本
#2、解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64
#3、添加环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】
#4、初始化
mysqld --initialize-insecure
#5、启动MySQL服务
mysqld # 启动MySQL服务
#6、启动MySQL客户端并连接MySQL服务
mysql -u root -p # 连接MySQL服务器
将MySQL服务设置为windows服务
在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:
注意:--install前,必须用mysql启动命令的绝对路径
# 制作MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --install
# 移除MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --remove
注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
# 启动MySQL服务
net start mysql
# 关闭MySQL服务
net stop mysql
如果出现:Install/Remove of the Service Denied! ,说明权限不够
找到 C:\Windows\System32目录下的cmd.exe,右键管理员方式运行,重新上述操作即可。
2.2 Linux上安装MySQL
二进制rpm包安装
yum -y install mysql-server mysql
源码安装
1.解压tar包
cd /software
tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21
2.添加用户与组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql mysql-5.6.21
3.安装数据库
su mysql
cd mysql-5.6.21/scripts
./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data
4.配置文件
cd /software/mysql-5.6.21/support-files
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql #若mysql的安装目录是/usr/local/mysql,则可省略此步
修改文件中的两个变更值
basedir=/software/mysql-5.6.21
datadir=/software/mysql-5.6.21/data
5.配置环境变量
vim /etc/profile
export MYSQL_HOME="/software/mysql-5.6.21"
export PATH="$PATH:$MYSQL_HOME/bin"
source /etc/profile
6.添加自启动服务
chkconfig --add mysql
chkconfig mysql on
7.启动mysql
service mysql start
8.登录mysql及改密码与配置远程访问
mysqladmin -u root password 'your_password' #修改root用户密码
mysql -u root -p #登录mysql,需要输入密码
mysql