1、数据库介绍

1.1.什么是数据库`<Database>`

简单说存放数据的仓库,这个仓库按照一定的数据结构<数据结构是指数据的组织形式或数据之间的联系>来组织、存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据我们简单形象的理解,比如我们人类这个大社会,我们的身份证,户口簿等等都和数据库有关

1.2.产生发展

数据库产生于60多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用

2、MYSQL介绍与安装

2.1.为什么选择MYSQL

  1. mysql性能卓越,服务稳定,很少出现异常宕机
  2. mysql开源免费,无版权制约,自主性及使用成本低
  3. 产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是php
  4. 技术积累,庞大的活跃的社区,
  5. 软件体积小,安装简单,易于维护

3、MYSQL数据库分类

MySQL官网http://www.mysql.com/,MySQL版本采用双授权政策,和大多数开源产品路线一样,分为社区版和商业版,并且这两个版本又分别分成四个版本依次发布,Alpha版、Beta版、RC版和GA版、GA版即为正式版

3.1.社区版和企业版的区别

  • 首先价格上,社区版完全免费,企业版需要高额的费用
  • 技术上,企业版具有MySQL企业级服务器、MySQL企业级系统监控工具。企业版经过严格的测试认证,相对企业版,社区版的开发测试环境没有那么严格
  • 服务方面,社区版mysql官方不提供任何技术支持,使用过程出现任何意外不负任何责任,企业版与之相反
  • 商业版不支持GPL协议
  • 选择稳定版 选择社区的GA版
  • 产品线,主要是5.1和5.5 ,多数5.5
  • 选择MySQL GA版发布6个月以上的版本
  • 最好向后较长时间没有更新发布的版本
  • 与开发人员使用版本的兼容
  • 测试环境跑3-6个月
  • 到生产环境非核心业务跑几个月

4、MYSQL安装

4.1、生产环境怎么选择MYSQL版本

  • 选择稳定版 选择社区的GA版
  • 产品线,主要是5.1和5.5 ,多数5.5
  • 选择MySQL GA版发布6个月以上的版本
  • 最好向后较长时间没有更新发布的版本
  • 与开发人员使用版本的兼容
  • 测试环境跑3-6个月
  • 到生产环境非核心业务跑几个月

4.2、MYSQL安装方法

  • 使用二进制方式安装,rpm/yum
  • 源码编译,产品线路1用普通编译安装,线路2用cmake编译安装5.5/6/7

4.3、yum安装mysql 5.6.39

1.清理CentOS7下的MariaDB。

  1. [root@MySql- ~]# rpm -qa | gremp mariadb
  2. [root@MySql- ~]# rpm -e --nodeps mariadb.x86_64 :-.el7_0

2.下载MySQL的yum包

Linux系统自带的repo是不会自动更新每个软件的最新版本(基本都是比较靠后的稳定版),所以无法通过yum方式安装MySQL的高级版本。所以我们需要先安装带有当前可用的mysql5系列社区版资源的rpm包(确保电脑联网)。

  1. [root@MySql- ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
  2. [root@MySql- ~]# rpm -ivh mysql-community-release-el7-.noarch.rpm
  3. [root@MySql- ~]# yum install mysql-community-server

4.4、MySQL安装完成后,进行相关配置

安装成功后,将其加入开机启动并启动

  1. [root@MySql- ~]# systemctl enable mysqld
  2. [root@MySql- ~]# systemctl start mysqld
  3. [root@MySql- ~]# ss -tnl |
  4. LISTEN ::: :::*

配置mysql(设置密码等)

  1. [root@MySql- ~]# mysql_secure_installation
  2. Enter current password for root (enter for none): #[直接回车]
  3. Set root password? [Y/n] Y # [设置root用户密码]
  4. New password:
  5. Re-enter new password:
  6. Password updated successfully!
  7. Reloading privilege tables..
  8. ... Success!
  9. Remove anonymous users? [Y/n] y # [删除匿名用户]
  10. Disallow root login remotely? [Y/n] y #[禁止root远程登录]
  11. Remove test database and access to it? [Y/n] y # [删除test数据库]
  12. Reload privilege tables now? [Y/n] y # [刷新权限]
  13. All done! If you've completed all of the above steps, your MySQL
  14. installation should now be secure.
  15. Thanks for using MySQL!
  16.  
  17. Cleaning up...

5、MySQL客户端选项

  1. **实例**
  2. -u,--user                 # 指定连接用户
  3. -h,--host                 # 指定连接主机
  4. -p,--password               # 指定连接密码
  5. --protocol={tcp|socket|memory|pipe}   # 指定连接协议
  6. -P,--port                 # 指定连接端口,默认监听端口:tcp/
  7. --socket                   # 指定本地连接的sock文件
  8. --compress                 # 数据传输采用压缩格式
  9. -D,--database               # 指定连接后默认使用的数据库
  10. -H,--html                 # 指定产生html输出
  11. -X,--xml                   # 指定产生xml输出
  12. --safe-updates               # 拒绝使用无where子句的update或delete命令
  13. # 使用实例:mysql -hlocalhost -uroot -p

6、MySQL管理工具mysqladmin

  1. # 使用格式:mysqladmin [options] command [arg] [,command [arg]] …
  2. # 常用的command包括:
  3. create DB_Name           # 创建数据库
  4. drop DB_Name             # 删除数据库
  5. debug                 # 打开调试日志并记录于error log中
  6. status               # 显示简要状态信息
  7. --sleep               #:设置间隔时长
  8. --count             #:设置显示的批次
  9. extended-status         # 显示扩展信息,输出mysqld的各状态变量及赋值,相当于执行“mysql> show global status”
  10. variables:           # 输出mysqld的各服务器变量
  11. flush-hosts:           # 清空主机相关的缓存:DNS解析缓存;此前因为连接错误次数过多而被拒绝访问mysqld的主机列表
  12. flush-logs:           # 日志滚动,只能滚动二进制日志和中继日志
  13. refresh:           # 相当于同时使用flush-hosts和flush-logs
  14. flush-privileges       # 通知mysqld重读授权表
  15. reload             # 功能同“flush-privileges”
  16. flush-status         # 重置状态变量的值
  17. flush-tables           # 关闭当前打开的表文件句柄
  18. flush-threads:         # 清空线程缓存
  19. kill               # 杀死指定的线程,需指定线程ID;可以一次杀死多个线程,以逗号分隔,但不能有多余空格
  20. password             # 修改当前用户的密码
  21. ping               # 模拟ping操作,检测mysqld是否在线
  22. processlist           # 显示mysqld线程列表
  23. shutdown             # 关闭mysqld进程
  24. start-slavestop-slave     # 启动/关闭从服务器线程

7、MySQL数据文件解析

MyISAM表:每表有3个文件,都位于数据库目录中

  1. tb_name.frm # 表结构定义文件
  2. tb_name.MYD # 数据文件
  3. tb_name.MYI # 索引文件

InnoDB表:有2种存储方式

默认方式:每表有1个独立文件和一个多表共享的文件

  1. tb_name.frm # 表结构定义文件,位于数据库目录中
  2. ibdata#: # 共享的表空间文件,默认位于数据目录(datadir指向的目录)中,如ibdata1

自定义方式:独立的表空间

  1. tb_name.frm #表结构定义文件
  2. tb_name.ibd # 独有的表空间文件

在MySQL初始化中打开独立表空间功能的方法:

  1. vi /etc/my.cnf (在[mysqld]段下添加)
  2. innodb_file_per_table = ON
  3. # 注:表空间:table space,是由InnoDB管理的特有格式的数据文件,内部可同时存储数据和索引

MySQL系列-第一章节:MySQL介绍与安装的更多相关文章

  1. openresty开发系列10--openresty的简单介绍及安装

    openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...

  2. Kafka系列一之架构介绍和安装

    Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...

  3. Ansible第一篇:介绍及安装

    Ansible介绍 Ansible是个什么东西呢?官方的title是"Ansible is Simple IT Automation"--简单的自动化IT工具.ansible基于P ...

  4. mysql系列之2.mysql多实例

    使用场景 资金紧张; 并发访问不大; 门户网站; 实现 生产硬件配置: mem 32G / 双cpu 8核 / 磁盘6*600G sas 15k, 2-3个实例 安装组件 #yum install n ...

  5. Flume系列一之架构介绍和安装

    Flume架构介绍和安装 写在前面 在学习一门新的技术之前,我们得知道了解这个东西有什么用?我们可以使用它来做些什么呢?简单来说,flume是大数据日志分析中不能缺少的一个组件,既可以使用在流处理中, ...

  6. mysql系列之6.mysql主从同步

    普通文件的数据同步 nfs: 网络文件共享 samba: 共享数据 定时任务或守护进程结合 rsync.scp inotify(sersync)+rsync 触发式实时数据同步 ftp数据同步 ssh ...

  7. mysql系列之4.mysql字符集

    针对mysql语句的临时办法: 先查看下mysql的各种编码设置情况, 如果结果显示有几项的编码不一致, 请先调整linux的系统编码 mysql> show variables like 'c ...

  8. MySQL高级第一章——架构介绍

    一.简介 是一个经典的RDBMS,目前归属于Oracle 高级MySQL包含的内容: MySQL内核 SQL优化工程师 MySQL服务器的优化 各种参数常量设定 查询语句优化 主从复制 软硬件升级 容 ...

  9. mysql系列之多实例介绍

    介绍: mysql多实例,简单理解就是在一台服务器上,mysql服务开启多个不同的端口(如3306.3307),运行多个服务进程.这些 mysql 服务进程通过不同的 socket来监听不同的数据端口 ...

随机推荐

  1. Android 文件下载三种基本方式

    一.自己封装URLConnection 连接请求类 public void downloadFile1() { try{ //下载路径,如果路径无效了,可换成你的下载路径 String url = & ...

  2. 2017年StackOverflow上最好的20个Python问题

    1.Python的 .. (点号 点号) 是什么语法? 答案地址:https://stackoverflow.com/questions/43487811/what-is-python-dot-dot ...

  3. spring core 与 context理解

    Spring core是核心层,拥有这BeanFactory这个强大的工厂,是所有bean的管理器: 而spring context是上下文运行环境,基于spring core之上的一个架构, 它之上 ...

  4. CentOs下 SVN版本控制的安装(包括yum与非yum)

    一.yum安装 rpm -qa subversion //检查是否安装了低版本的SVN yum remove subversion //如果存储旧版本,卸载旧版本SVN 开始安装 yum -y ins ...

  5. UVA-11214 IDA*

    利用迭代加深搜索,枚举需要的皇后数量,进行搜索. 对于10 * 10 的棋盘,最多需要5个皇后就能攻击整个棋盘,当0~4个皇后都不能搜索成功,那么5就不用搜索,直接打印. AC代码: #include ...

  6. 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据

     目录 前言 1 Get方式和Post方式接口说明 2 OkHttp库简单介绍及环境配置 3 具体实现 前言 本文具体实现思路和大部分代码参考自<第一行代码>第2版,作者:郭霖:但是文中讲 ...

  7. AnsibleAPI源码剖析(1)-Runner类的 初始化

    #ansible版本说明:ansible1.9.1 1.简单使用例子 # -*- coding=utf-8 -*- import ansible.runner #################### ...

  8. 学web前端开发有前途吗

    web前端开发现在如此火爆,可以说是引领了IT培训行业的一个潮流,那么web前端开发都要学些什么知识呢?为什么这么火有前途吗?现在行业很需要这种人才吗?还是大家盲目跟风,随大流,下面小编对web前端做 ...

  9. 3.3.2 PCI设备对不可Cache的存储器空间进行DMA读写

    在x86处理器和PowerPC处理器中,PCI设备对"不可Cache的存储器空间"进行DMA读写的过程并不相同.其中PowerPC处理器对"不可Cache的存储器空间&q ...

  10. mysql常用基础操作语法(十)~~子查询【命令行模式】

    mysql中虽然有连接查询实现多表连接查询,但是连接查询的性能很差,因此便出现了子查询. 1.理论上,子查询可以出现在查询语句的任何位置,但实际应用中多出现在from后和where后.出现在from后 ...