SQL VS NOSQL
关系型数据库的特点
- 数据结构化存储在二维表中
- 支持事务的原子性、一致性、隔离性、持久性的特性
- 支持使用SQL语言对存储在其中的数据进行操作
关系型数据库的适用场景
- 数据之间存在着一定关系,需要关联查询数据的场景
- 需要事务支持的业务场景
- 需要使用SQL语言灵活操作数据的场景
非关系型数据库的特点
- 存储结构灵活,没有固定的结构
- 对事务的支持比较弱,但对数据的并发处理性能高
- 大多数不是使用SQL语言来操作数据
非关系型数据库的适用场景
- 数据结构不固定的场景
- 对事务要求不高,但是读写并发比较大的场景
- 对数据的处理操作比较简单的场景
关系数据库选型原则
- 数据库使用的广泛性
- 数据库的可扩展性
- 数据库的安全性和稳定性
- 数据库所支持的系统
- 数据库的使用成本
准备虚拟机
centos镜像大全
https://www.centos.org/download/(官方网址)
http://man.linuxde.net/download/CentOS
http://mirrors.btte.net/centos/7/isos/x86_64/
http://mirrors.cn99.com/centos/7/isos/x86_64/
http://mirrors.sohu.com/centos/7/isos/x86_64/
http://mirrors.aliyun.com/centos/7/isos/x86_64/
http://centos.ustc.edu.cn/centos/7/isos/x86_64/
http://mirrors.neusoft.edu.cn/centos/7/isos/x86_64/
http://mirror.lzu.edu.cn/centos/7/isos/x86_64/
http://mirrors.163.com/centos/7/isos/x86_64/
http://ftp.sjtu.edu.cn/centos/7/isos/x86_64/
安装MySQL
1、系统约定
安装文件下载目录:/data/software
Mysql目录安装位置:/usr/local/mysql
数据库保存位置:/data/mysql
日志保存位置:/data/log/mysql
2、下载mysql
#mkdir /data/software
#cd /data/software
#wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.5-linux-glibc2.12-x86_64.tar.xz
3、解压并提取文件,移动到指定文件夹内改名
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.5-linux-glibc2.12-x86_64.tar.xz
tar xf mysql-8.0.15-linux-glibc2.12-x86_64.tar
mv mysql-8.0.15-linux-glibc2.12-x86_64 /usr/local
mv mysql-8.0.15-linux-glibc2.12-x86_64 /usr/local
4、创建数据仓库目录
# mkdir /data/mysql
5、新建用户,并改变创建目录属有者
adduser mysql
chown mysql:mysql /usr/local/mysql /data/mysql
6、配置mysql服务
vi /etc/my.cnf
[client]
port = 3306
socket = /usr/local/mysql/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
socket = /usr/local/mysql/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql
#设定默认的事务隔离级别,可用的级别:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE
transaction_isolation = READ-UNCOMMITTED
back_log = 40
key_buffer_size = 32M
#服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要),每个连接独立的大小.大小动态增加
max_allowed_packet = 16M
thread_stack = 192K
external-locking = FALSE
#用来做MyISAM表全表扫描的缓冲大小。当全表扫描需要时,在对应线程中分配。
read_buffer_size = 1M
join_buffer_size = 256K
#当在排序之后,从一个已经排序好的序列中读取行时,行数据将从这个缓冲中读取来防止磁盘寻道。如果你增高此值,可以提高很多ORDER BY的性能。当需要时由每个线程分配。
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 2M
#此缓冲当MySQL需要在 REPAIR, OPTIMIZE, ALTER 以及 LOAD DATA INFILE 到一个空表中引起重建索引时被分配。这在每个线程中被分配.所以在设置大值时需要小心。
myisam_sort_buffer_size = 4M
#如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们。这对于拥有多个CPU以及大量内存情况的用户,是一个很好的选择。
myisam_repair_threads = 1
#MySQL 服务所允许的同时会话数的上限,其中一个连接将被SUPER权限保留作为管理员登录。 即便已经达到了连接数的上限.
max_connections = 200
#指定一个请求的最大连接时间。
max_connect_errors = 200
[mysqldump]
max_allowed_packet = 16M
7、配置系统参数
vi /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
8、初始化mysql
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
请记住初始密码
9、启动mysql服务
cd support-files/
cp mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
// 查看其实已经启动
ps -ef | grep mysql
// 登陆
mysql -uroot -p
// 修改密码
alter user user() identified by '123456';
// 退出
exit