我是靠谱客的博主 强健大叔,最近开发中收集的这篇文章主要介绍MySQL数据库选型选型之初:NoSQL VS SQL选型确认:各种数据库存储系统的使用场景选型之终:构建MySQL开发环境,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 选型之初:NoSQL VS SQL
  • 选型确认:各种数据库存储系统的使用场景
    • 关系数据库的特点
    • 关系型数据库的适用场景
    • 非关系数据库的特点
    • 非关系型数据库的适用场景
    • 关系数据库选型原则
      • 数据库使用的广泛性
      • MySQL数据库的可扩展性
      • MySQL数据库的安全性和稳定性
      • MySQL所支持的系统
      • MySQL的使用成本
  • 选型之终:构建MySQL开发环境
    • 部署CentOS虚拟机
      • 准备虚拟服务器
    • 安装MySQL服务
      • 启动MySQL
        • 配置my.cnf
        • 初始化MySQL
        • 启动MySQL
        • 查看初始化的用户名密码
        • 登录MySQL

选型之初:NoSQL VS SQL

SQL指的是使用SQL语言来对数据库中数据进行操作的数据库系统,通常所指的是关系型数据库系统,如我们常见的:

  • MySQL
  • Oracle
  • SQLServer
  • PostGreSQL

NoSQL指的是不用用SQL语言对数据库操作数据的系统,NoSQL的含义是“No Only SQL”——不仅仅有SQL的意思,但是这类系统大多数并不是使用SQL语言来操作数据库的,并且这类系统通常都是非关系型数据库,如:

  • HBase
  • MongoDB
  • Redis
  • Hadoop

近几年,NoSQL大行其道,并且有一种说法,NoSQL最终将会替代SQL数据库,成为数据存储的主力。不过,从目前来说两者的使用情况,SQL类系统还是处于绝对的霸主地位。

选型确认:各种数据库存储系统的使用场景

这两种数据库都有自身的特点,我们使用它们用于不同的场景

关系数据库的特点

  • 数据结构化存储在二维表中
姓名性别生日注册时间
张三1980-1-282018-12-12
李四1991-2-32018-11-21
王二1998-3-62018-05-08

值得注意的是,现在很多关系型数据库都支持一种列属性——JSON,在JSON列中可以存储非结构化的数据,这就是关系型数据库也有了一些非关系型数据库的特点,可以存储非关系型数据。但是,这也仅限使用JSON类型的这种列,从整体上来看,关系型数据库存储还是这种结构化的

  • 支持事务的原子性A,一致性C,隔离性I,持久性D特性

  • 支持使用SQL语言对存储在其中的数据进行操作

关系型数据库的适用场景

  • 数据之间存在一定关系,需要关联查询数据的场景

  • 需要事务支持的业务场景

  • 需要使用SQL语言灵活操作数据的场景

非关系数据库的特点

  • 存储结构灵活,没有固定的结构
{"姓名":"张三","性别":"男","出生日期":"1980-01-28","注册时间":"2018-12-12"}
{"姓名":"李四","性别":"男"}
{"姓名":"王二","性别":"男","电话":"13800000001"}

我们可以看到张三、李四、王二这几个人可以具有不同的属性,这相对于关系型数据库系统来说,要灵活的多,不用一开始就把数据结构固定下来。但是,也又一些问题,就是每一行都要列数据之外还要包括我们的列名,所以如果不考虑压缩的情况下,从数据空间占用来说,存储相同的数据非关系型数据库占用更多的空间。

  • 对事务的支持比较弱,但对数据的并发处理性能高
  • 大多不是使用SQL语言来进行操作数据

非关系型数据库的适用场景

  • 数据结构不固定的场景
  • 对事务要求不高,但读写并发比较大的场景
  • 对数据的操作比较简单的场景

关系数据库选型原则

  • 数据库使用的广泛性
  • 数据库的可扩展性
  • 数据库的安全性和稳定性
  • 数据库所支持的系统
  • 数据库的使用成本

数据库使用的广泛性

我们可以使用数据库排行榜来看下

MySQL数据库的可扩展性

  • 支持基于二进制日志的逻辑复制
  • 存在多种第三方数据库中间件,支持读写分离及分库分表

MySQL数据库的安全性和稳定性

  • MySQL主从复制集群可达到99%的可用性
  • 配合主从复制高可用架构可以达到99.99%的可用性
  • 支持对存储在MySQL的数据进行分级安全控制

MySQL所支持的系统

  • 支持Linux系统
  • 支持Windows系统

MySQL的使用成本

  • 社区版本免费
  • 使用人员众多,可以方便的获取技术支持

选型之终:构建MySQL开发环境

部署CentOS虚拟机

  • 基于VirtualBox
  • https://download.virtualbox.org/virtualbox/5.2.22/VirtualBox-5.2.22-126460-Win.exe

准备虚拟服务器

  1. 创建
名称系统版本内存大小
MySQLLinuxRed-Hat(64-bit)512M
  1. 选择虚拟磁盘位置
位置文件大小分配
自定义20G动态分配(不会立即分配20G)
  1. 设置
网络存储分配
桥接网卡(可使用内网ip连虚拟机)选择iso文件位置动态分配(不会立即分配20G)
  1. 安装centOS服务器
选择语言编解创建root密码点击Reboot重启登录
英语将灰色icon点亮(选择默认就可以)创建重启耗时约1分钟使用root账号密码
  1. 配置虚拟机

网络

  • 进入到目录/etc/sysconfig/network-scripts ,使用命令ifconfig看网卡
    连接

上一步网络没有配置好,由于有其它的解决方法来替代,如docker或本机安装windows版,因此就没有再使用virtualbox

安装MySQL服务

启动MySQL

我们不能使用root账号来启动服务,因此需要给MySQL服务创建一个账号

adduser mysql

配置my.cnf

在mysql目录下建立目录

mkdir data sql_log undo
datasql_logundo
存放数据sql执行日志undo文件

该变创建目录的属主,让mysql用户拥有写权限

chown mysql:mysql
-R
data/
sql_log/
undo/

为了使用方便,需要在系统变量中添加

export
PATH=$PATH:/user/local/mysql/bin

这样就可以在系统的任何目录执行MySQL的命令了,还需要对系统参数进行应用

source /etc/profile

初始化MySQL

在MySQL5.7之后,初始化需要使用mysqld命令了

mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

启动MySQL

需要将mysql目录下的support-files目录mysql.server 复制到/etc/init.d/目录下并命名为mysqld

cd support-files;
cp mysql.server /etc/init.d/mysql

接下来,可以使用脚本启动服务了

/etc/init.d/mysqld start
Starting
MySQL... SUCCESS!

可以使用ps查看MySQL服务是否存在

ps -ef | grep mysql

查看初始化的用户名密码

在sql_log目录下的mysql-error.log文件中查看初始化的用户名密码

cd sql_log;
grep password mysql-error.log
2019-02-20T05:57:46 5 [Note]
[MY-010454] A temporary password is generated for root@localhost: &oz2ZhelBvi

登录MySQL

mysql -uroot -p
Enter password:

修改初始的密码

alter user user()
identified by '123456';
Query OK, 0 rows affected(0.11 sec)

退出

exit

重新登陆就要使用新的密码了

最后

以上就是强健大叔为你收集整理的MySQL数据库选型选型之初:NoSQL VS SQL选型确认:各种数据库存储系统的使用场景选型之终:构建MySQL开发环境的全部内容,希望文章能够帮你解决MySQL数据库选型选型之初:NoSQL VS SQL选型确认:各种数据库存储系统的使用场景选型之终:构建MySQL开发环境所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部