什么是数据库
数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作
数据库管理系统(DBMS)
- RDBMS
- 关系型数据库管理系统
- 数据安全性要求较高的应用场景
- Oracle/MySQL/MSSQL/PG
- NoSQL
- 非关系型数据库管理系统
- 针对性能要求较高,数据安全性要求不太高的场景,一般是配合RDBMS使用的产品
- Redis/mongo/ES
- NewSQL
- 分布式数据库管理系统
- TiDB(PingCap)/Spannaer(Google)
MySQL 软件分支
- Oracle MySQL
- MariaDB
- PerconaDB
- 云数据库(RDS MySQL-阿里/腾讯DB....)
MySQL 企业版本选择
主流版本 | 发布时间 |
---|---|
5.6.34 | 2016.10.02 |
5.6.38 | 2017.09.13 |
5.6.40 | 2018.02.26 |
5.7.22 | 2018.03.04 |
5.7.24 | 2018.10.04 |
5.7.26 | 2019.04.13 |
企业新环境的版本选择:
GA 版本 6-12月的产品,一般为偶数版
MySQL 二进制版本安装
- 安装版本:MySQL 5.7.26
- 操作系统:CentOS 7.6
下载并上传软件
[root@mysql ~]# mkdir -p /server/scripts
[root@mysql ~]# cd /server/scripts/
[root@mysql /server/scripts]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
解压
[root@mysql /server/scripts]# mkdir /application
[root@mysql /server/scripts]# mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql
处理原始环境
[root@mysql /server/scripts]# rpm -qa |grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@mysql /server/scripts]# yum remove mariadb-libs.x86_64 -y
## 卸载此软件或删除/etc/my.cnf 否则会报错
创建用户
[root@mysql ~]# useradd -s /sbin/nologin mysql
[root@mysql ~]# id mysql
uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)
设置环境变量(添加到尾部)
[root@mysql ~]# vim /etc/profile
export PATH=/application/mysql/bin:$PATH
[root@mysql ~]# source /etc/profile
[root@mysql ~]# mysql -V ==> 检查是否生效
mysql Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using EditLine wrapper
创建数据目录并授权
[root@mysql ~]# mkdir /data/mysql/data -p
[root@mysql ~]# chown -R mysql:mysql /data/
[root@mysql ~]# chown -R mysql.mysql /application/mysql/*
初始化数据(创建系统数据)
[root@mysql ~]# yum install -y libaio-devel
[root@mysql ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
编写配置文件
[root@mysql ~]# cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
配置systemd管理(CentOS 7)
或者使用sysd启动方式
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@mysql ~]# cat >/etc/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
启动数据库
[root@mysql ~]# systemctl start mysqld
[root@mysql ~]# systemctl enable mysqld
[root@mysql ~]# netstat -lntup |grep 3306 #查看是否启动成功
管理员密码设置
[root@db01 ~]# mysqladmin -uroot -p password 123456
Enter password: #==> 无密码,直接回车