Linux运维•数据库(一)⁃MySQL基本概念

本文介绍了MySQL数据库的基本概念,包括数据、数据库、数据库表等定义,并详细阐述了数据库系统的组成和发展历程。此外,还提供了MySQL的选择理由及MariaDB的介绍,以及在Windows和Linux环境下MySQL的安装步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL数据库

一、基本概念

1、什么是数据

存储的信息就称为数据

2、什么是数据库

数据库就是一个存放数据的仓库。 
这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据。

3、什么是数据库表

数据表是关系数据库中一个非常重要的对象,是其它对象的基础,也是一系列二维数组的集合,用来存储、操作数据的逻辑结构。 
根据信息的分类情况。一个数据库中可能包含若干个数据表,每张表是由行和列组成,记录一条数据,数据表就增加一行,每一列是由字段名和字段数据集合组成,列被称之为字段,每一列还有自己的多个属性,例如是否允许为空、默认值、长度、类型、存储编码、注释等。

4、数据库系统的三个组成部分

①数据库(Database):用于存放数据的地方

②数据库管理系统(Database Management System,DBMS):用户管理数据库的软件

③数据库应用程序(Database Application):为了提高数据库系统的处理能力所使用的管理数据库的软件补充

5、数据库的五个发展阶段

①文件系统:数据库系统的萌芽阶段,通过文件来存取数据。

②层次型数据库:数据库系统真正开始阶段,数据的存储形式类似树形结构,所以也叫树型数据库。

③网状数据库:数据的存储形式类似网状结构。

④关系型数据库:关系型数据库系统使用结构化查询语言(Structured Query Language,SQL)作为数据库定义语言DDL和数据库操作语言DML。

⑤面向对象数据库:把面向对象的方法和数据库技术结合起来,可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致,并且能够有效的为面向对象程序提供更好的数据库支撑。

6、数据库的特点

①实现数据共享

数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。

②减少数据冗余度

同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。

③数据一致性和可维护性,以确保数据的安全性和可靠性

  • 安全性控制:以防止数据丢失、错误更新和越权使用;
  • 完整性控制:保证数据的正确性、有效性和相容性;
  • 并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。

④故障恢复

由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。

7、数据库的分类

①关系型数据库

  • 关系型数据库 : 是把复杂的数据结构归结为简单的二元关系(即二维表格形式)
  • 目前主流的关系型数据库: 
    • Oracle:是世界上使用最广泛的数据库,上世纪末随着网络浪潮的到来,Oracle推出9i这个版本,i表示internet,全面支持网络引用。10g,g是grid网格,是Oracle公司为迎接“网格计算”时代的来临而提供的数据库解决方案。
    • MySQL:是一个开源的、免费的关系型数据库。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
    • SQL Server:微软公司的关系型数据库,一般.NET平台会将其作为首选.
    • DB2:是IBM出品的一系列关系型数据库管理系统,分别在不同的操作系统平台上服务。

②非关系型数据库

  • 非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Only SQL”.而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定非关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
  • NOSQL非关系型数据库小结 
    • NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充
    • NOSQL为了高性能、高并发而生,但是要求对数据一致性要求不能高
    • NOSQL典型产品memcached (纯内存,k-v),redis(持久化缓存,k-v),mongodb(文档的数据库,xml-json)

8、选择MySQL的理由 & MariaDB 介绍

①选择MySQL的理由

  • MySQL性能卓越、服务稳定,很少出现异常宕机
  • MySQL开放源代码且无版权制约,自主性及使用成本低
  • MySQL历史悠久,社区及用户活跃,遇到问题可以解决
  • MySQL软件体积小,安装使用简单,并且易于维护,安装及维护成本低
  • MySQL品牌口碑效应,使得企业无需考虑就直接用
  • MySQL支持多用操作系统,提供多种API接口,支持多用开发语言,特别对流行的语言有很好的支持

②MariaDB 介绍

出现在2009年. MAriaDB数据库管理系统是MySQL数据库的一个分支,主要由开源社区维护,采用GPL授权许可。 
开发这个MariaDB的原因之一是:甲骨文公司收购了MySQL后,MySQL有闭源的潜在风险,因此MySQL开源社区采用分支的方式来避开这个风险。MariaDB默认的存储引擎是Maria,不是MyISAM。Maria可以支持事务,但是默认情况下没有打开事务支持,因为事务支持对性能会有影响。可以通过以下语句,转换为支持事务的Maria引擎。 
ALTER TABLE `tablename` ENGINE=MARIA TRANSACTIONAL=1;  

9、下载及安装

① 总体下载安装步骤:

  • 官网下载mysql安装程序
  • 安装mysql服务端
  • 安装mysql客户端
  • 客户端连接服务端
  • 通过客户端向服务器发送命令,执行对数据库文件的增删改差操作。

②windows安装(ZIP archive方式安装)

  • 下载:MySQL Community Server 5.7.20(https://dev.mysql.com/downloads/mysql/
  • 解压:将官网下载的解压包 解压到指定目录(例如 D://mysql-5.7.20-winx64)
  • 添加环境变量:将解压出的文件夹下bin目录加入系统环境变量(例如:D:\mysql-5.7.20-winx64\bin)
  • 初始化:在cmd命令行输入命令:mysqld –initialize-insecure
  • 启动mysql服务:在cmd命令行输入命令:mysqld
  • 连接mysql服务:另外开启cmd命令行并输入:mysql -uroot -p 回车,有密码输入密码,没有继续回车
  • 至此安装成功,接下来手动为MySQL制作Windows系统服务(ps:制作服务必须使用全路径方式)
  • 制作MySQL的Windows服务,在cmd命令行输入此命令:”D:\mysql-5.7.20-winx64\bin\mysqld” –install
  • 移除MySQL的Windows服务,在cmd命令行输入此命令:”D:\mysql-5.7.20-winx64\bin\mysqld” –remove
  • 启动MySQL服务:在cmd命令行输入:net start mysql
  • 关闭MySQL服务:在cmd命令行输入:net stop mysql
  • PS:完全卸载mysql参考:http://www.cnblogs.com/wangfengming/articles/7879074.html

③linux安装

  1. 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads, 
    也可直接通过命令下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
  2. 安装文件下载目录:/data/software(根目录下创建/data/software,将安装包放到software
    Mysql目录安装位置:/usr/local/mysql
    数据库保存位置:/data/mysql
    日志保存位置:/data/log/mysql
  3. 执行如下命名:

    #mkdir /data/software

    #cd /data/software

  4. 解压压缩包到目标位置
    #cd /data/software

    --解压压缩包

    #tar -xzvf /data/software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

    --移动并修改文件名

    #mv /data/software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql

  5. 创建数据仓库目录

    --/data/mysql 数据仓库目录
    # mkdir /data/mysql         
    #ls /data/

     

  6. 新建mysql用户、组及目录
    # groupadd mysql   ---新建一个msyql组
    # useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql     ---新建msyql用户禁止登录shell

  7. 改变目录属有者

    #cd /usr/local/mysql
    #pwd
    #chown -R mysql .
    #chgrp -R mysql .
    #chown -R mysql /data/mysql

  8. 配置参数
    # bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

    此处需要注意记录生成的临时密码,Qu/HXQK7pjzA

  9. #bin/mysql_ssl_rsa_setup  --datadir=/data/mysql

  10. 修改系统配置文件

    #cd /usr/local/mysql/support-files

  11. # cp my-default.cnf /etc/my.cnf
    # cp mysql.server /etc/init.d/mysql

    # vim /etc/init.d/mysql

    修改以下内容:

  12. 启动mysql

    # /etc/init.d/mysql start

    --登陆

    # mysql -hlocalhost -uroot -p

      --如果出现:-bash: mysql: command not found

      --就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行

    --输入第6步生成的临时密码

    --修改密码

    mysql> set password=password('root');

    --设置root账户的host地址(修改了才可以远程连接)

    mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';
    mysql>flush privileges;

  13. 添加系统路径
    # vim /etc/profile
    添加:
    export PATH=/usr/local/mysql/bin:$PATH
    如下:

    # source /etc/profile

  14. 配置mysql自动启动
    # chmod 755 /etc/init.d/mysql
    # chkconfig --add mysql
    # chkconfig --level 345 mysql on

    以上就是linux环境Mysql 5.7.13安装教程,希望对大家的学习有所帮助。

  15. 补充:

    --退出mysql命令窗口

    #exit

     --查看mysql状态

    #service mysql status

    --停止mysql

    #service mysql stop

    --启动mysql

    #service mysql start

  16. 本地Navicat连不上Linux虚拟机MySQL数据库问题

     

    1、有没有赋予ip权限

    mysql> grant all privileges on *.* to root@"%" identified by "563412";

    这表示是给本地ip赋予了所有的权限,包括远程访问权限,%百分号表示允许任ip访问数据库。

    mysql> flush privileges;

    重新加载,,退出

    mysql>exit

    然后,重启数据库

    service mysql restart 注:重启服务的命令有的是service,有的是systemctl,我不知道是Linux版本不一样,还是针对不同的服务,命令也不一样,这个注意一下

    2、防火墙也要关了,service iptables stop 与 systemctl stop firewalld.service

 

10、SQL介绍

①SQL:(Structured Query Language)是结构化查询语言缩写。是一门专门与数据库管理系统打交道的语言。

②SQL语言:是关系型数据库的标准语言, 其主要用于存取数据,查询数据,更新数据和管理数据库系统等操作。

③具体可以把SQL分为4个部分:

  • 数据控制语言 ( DCL): 
    主要用于控制用户的访问权限。其中GRANT语句用于给用户增加权限,REVOKE语句用于收回用户的权限
  • 数据定义语言(DDL): 
    DROP、CREATE、ALTER等语句;数据库定义语言。主要用于定义数据库,表,视图,索引和触发器等。 
    CREATE语句主要用于创建数据库,创建表,创建视图。 
    ALTER语句主要用于修改表的定义,修改视图的定义。 
    DROP语句主要用于删除数据库,删除表和删除视图等。
  • 数据操作语言(DML): 
    INSERT、UPDATE、DELETE语句;数据库操作语言。主要用于插入数据,更新数据,删除数据。 
    INSERT语句用于插入数据 
    UPDATE语句用于更新数据 
    DELETE语句用于删除数据
  • 数据查询语言(DQL): 
    SELECT语句,主要用于查询数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值