概述
文章目录
- 选型之初: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-28 | 2018-12-12 |
李四 | 男 | 1991-2-3 | 2018-11-21 |
王二 | 男 | 1998-3-6 | 2018-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
准备虚拟服务器
- 创建
名称 | 系统 | 版本 | 内存大小 |
---|---|---|---|
MySQL | Linux | Red-Hat(64-bit) | 512M |
- 选择虚拟磁盘位置
位置 | 文件大小 | 分配 |
---|---|---|
自定义 | 20G | 动态分配(不会立即分配20G) |
- 设置
网络 | 存储 | 分配 |
---|---|---|
桥接网卡(可使用内网ip连虚拟机) | 选择iso文件位置 | 动态分配(不会立即分配20G) |
- 安装centOS服务器
选择语言 | 编解 | 创建root密码 | 点击Reboot重启 | 登录 |
---|---|---|---|---|
英语 | 将灰色icon点亮(选择默认就可以) | 创建 | 重启耗时约1分钟 | 使用root账号密码 |
- 配置虚拟机
网络
- 进入到目录/etc/sysconfig/network-scripts ,使用命令ifconfig看网卡
连接
上一步网络没有配置好,由于有其它的解决方法来替代,如docker或本机安装windows版,因此就没有再使用virtualbox
安装MySQL服务
启动MySQL
我们不能使用root账号来启动服务,因此需要给MySQL服务创建一个账号
adduser mysql
配置my.cnf
在mysql目录下建立目录
mkdir data sql_log undo
data | sql_log | undo |
---|---|---|
存放数据 | 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开发环境所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复