码迷,mamicode.com
首页 > 数据库 > 详细

mysql基础

时间:2018-09-25 15:29:49      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:应该   pre   变量   def   冗余   进制   ext   chm   环境   

1.关系型数据库

1.数据库是一种数据的集合,他有着下面这些优点:

1.相互关联的数据的集合
2.较少的数据冗余
3.程序与数据相互独立
4.保证数据的安全、可靠
5.最大限度地保证数据的正确性
6.数据可以并发使用并能同时保证一致性

而现在市面上主流的数据库大都是关系型数据库,那么什么是关系型数据库呢?简单来说,关系型数据库就是一张张二维表,每一张表称为一个关系,表由行和列组成,每一行称为一个元组,也可以称为记录,每一列称为一个属性,存在唯一标识的字段,我们称之为主键。
2.联系类型

一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)

一对一,比如一个学生只能有一个学号,一个学号也只能对应一个学生
一对多,比如一个学院可以有多个学生,而学生只能有一个学院
多对多,比如一个老师可以有多个学生,学生也可以有多个老师
3.范式
范式是对关系数据库的规范化约束,包含着多种范式,我们主要学习的是第一范式,第二范式和第三范式。
1.第一范式,简称1NF
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。
2.第二范式,简称2NF
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。这个唯一属性列被称为主关键字或主键、主码。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。
3.第三范式,简称3NF
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。他所要解决的是非主属性对主属性的传递函数依赖

2.二进制安装mariadb

我们将lmariadb安装到lvm上,这样可以解决数据扩展的问题。
1.下载

从downloads.mariadb.org  下载所需版本的mariadb的二进制包 mariadb-10.3.9-linux-x86_64.tar.gz

2.创建所需用户及组

groupadd -g 36 -r mysql
useradd -u 36 -r -g mysql -m -d /app/dbdata -s /sbin/nologin mysql

3.准备dbdata

artx -a /dev/sda
pvcreate /dev/sda6
vgcreate vgmysql /dev/sda6
lvcreate -l +100%FREE -n lvmysql vgmysql
mkfs.ext4 /dev/vgmysql/lvmysql
echo `/dev/vgmysql/lvmysql    /app/dbdata             ext4    defaults        0 0` >>/etc/fstab
mount -a
chown mysql.mysql /app/dbdata
chmod 700 /app/dbdata

4.解压二进制目录

tar -xvf mariadb-10.2.14-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv mariadb-10.2.14-linux-x86_64 mysql

5.创建配置文件

cd /usr/local/mysql/
mkdir /etc/mysql
cp support-files/my-huge.cnf /etc/mysql/my.cnf
修改/etc/mysql/my.cnf中的以下内容
datadir         = /app/dbdata
innodb_file_per_table   = on
skip_name_resolve = on

6.创建数据库

scripts/mysql_install_db --datadir=/app/dbdata --user=mysql

7.配置启动脚本

cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld restart

8.配置环境变量PATH

echo `export PATH=/usr/local/mysql/bin:$PATH` >> /etc/bashrc
source /etc/bashrc

9.初始化mysql

mysql_secure_installation

mysql基础

标签:应该   pre   变量   def   冗余   进制   ext   chm   环境   

原文地址:http://blog.51cto.com/13412442/2285322

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!