Justin-刘清政的博客

db/MySQL系列/01-MySQL系列之-MySQL介绍安装配置

2019-12-24

一 MySQL介绍和安装

1.1 什么是数据?

1
2
3
4
5
6
7
数据:文字、图片、视频。。。人类认知的数据表现方式
计算机:二进制、16进制的机器语言
基于数据的重要性和复杂性的不同,我们可能有不同的管理方式。

哪些数据是适合存储到数据库的呢?
重要性比较高的
关系较复杂的数据

1.2 什么是数据库管理系统(DBMS)?

1
2
3
4
5
6
RDBMS: 关系型数据库管理系统
比较适合于,安全级别要求高的数据以及关系较复杂的数据

NoSQL:非关系型数据库管理系统
适合于高性能存取数据,一般是配合RDBMS进行使用的
针对大数据处理分析,分布式架构更加擅长

1.3 数据库管理系统种类

1
2
3
4
5
6
RDBMS:Relational Database Management System,关系数据库管理系统
MySQL 、Oracle、MSSQL(SQL Server)、PostgreSQL

NoSQL:Not Only SQL
键-值(key-value):Redis, memcached
文档(document):Mongodb

二 MySQL简介及产品线

2.1 MySQL行业主流版本

1
2
3
4
5.5 :企业基本不用了
5.6 :****:四星 5.6.36 5.6.38 5.6.40 ...5.6.46
5.7 :*****:五星 5.7.20 5.7.22 ....5.7.28 5.7.30(5.7版本最新)
8.0(最新) :**:两星 8.0.11 开始,之前都是测试版 ...8.0.20
image-20200812123341051

2.2 企业版本选择(MySQL分支版本)

1
2
3
4
5
6
7
8
9
10
# 分支
Oracle:
MySQL官方版
红帽 :
MariaDB:红帽维护的分支
Percona:
PerconaDB:Percona公司维护的分支
# 版本
企业版:收费
社区版:开源免费

2.3 版本选择建议

1
2
3
1.一般选择官方主流版本:5.6,5.7 
2.GA(稳定发布版)
3.6-12月的产品版本

2.4 课程版本:

1
5.7.30  二进制安装,其他安装方式自己扩展

2.5 下载(社区版源码安装)

1
2
3
4
5
6
7
8
9
10
11
企业版:Enterprise 互联网行业一般选择社区版
源码包:source code .tar.gz
## 下载-官网
1 https://www.mysql.com/
2 选择downloads
-https://www.mysql.com/downloads/
3 底部选择:MySQL Community (GPL) Downloads »
4 只能下到最新版:MySQL Community Server
5 选择Download Archives
6 选择MySQL Community Server
7 选择版本,平台下载即可
image-20200812124134757 image-20200812124209859 image-20200812124252353 image-20200812124328046 image-20200812124506731

2.6 安装方式

1
2
3
1 源码安装:编译安装,非常慢,需要研究源码
2 rmp,yum 安装:配置官方yum源,直接yum install
3 通用二进制版:解压即用,绿色版(企业用)

源码安装

image-20200812125826785

rpm方式

image-20200812125205098

yum方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 配置源
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# sudo yum install mysql-community-server
# sudo systemctl start mysqld.service
# sudo systemctl status mysqld.service
# sudo grep 'temporary password' /var/log/mysqld.log
# mysql -uroot -p
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

通用二进制安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# 1 环境准备
一台centos 7.6虚拟机,能上网,

# 2 清理一下环境
rpm -qa |grep mariadb
yum remove mariadb-libs
# 3 创建用户和组
useradd mysql
useradd mysql -s /sbin/nologin # 不能登录,没有家目录
id mysql

# 4 创建相关目录(软件目录,数据目录)
# 软件目录
mkdir -p /app/database/
# 数据目录
mkdir -p /data/3306
# 日志目录
mkdir -p /binlog/3306
# mkdir -p /app/database/ /data/3306/ /binlog/3306
# 生产建议:软件和数据和日志不要放在同一个地方,一般数据放在另一块磁盘上

# 5 设置权限
chown -R mysql.mysql /app/ /data/ /binlog

# 6 上传并解压软件到 /app/databases/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
tar xzf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

# 7 建立软连接
ln -s mysql-5.7.30-linux-glibc2.12-x86_64 mysql

# 8 设置环境变量
-bin # mysql执行的命令
-support-files # 存放脚本
# 把bin目录设置到环境变量中
vim /etc/profile
#添加一行
export PATH=/app/database/mysql/bin:$PATH
# 生效配置
source /etc/profile
# 验证
mysql -V

# 9 初始化系统库表(系统数据,数据库要启动,必须依赖一些表,系统表)
mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
#会报错:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
报错原因: Linux系统中缺少libaio-devel 软件包
#解决:
yum install -y libaio-devel

# 如果再执行一下上面的初始化命令,会报data目录不为空,需要删除数据目录再执行
#########补充:
# 1 初始化数据自带密码
# 5.7开始,MySQL加入了全新的 密码的安全机制:
1.初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)
2.密码复杂度:长度:超过12位? 复杂度:字符混乱组合
3.密码过期时间180

# 初始化数据,初始化管理员的临时密码
mysqld --initialize --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
# 会打印出密码,记住,然后需要修改root密码后才能正常使用数据库
# S44GNgK!h.qg
#2 5.6初始化的区别
./mysql/scripts/mysql_install_db --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/

# 10 编写默认配置文件
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/app/database/mysql
datadir=/data/3306/
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

# 11 配置启动脚本
cd /app/database/mysql/support-files
./mysql.server start
# copymysql的启动脚本至系统管理目录中
cp mysql.server /etc/init.d/mysqld
# centos6中,使用service 启动
service mysqld start
service mysqld stop
service mysqld restart
# centos7中:使用systemctl启动
chkconfig --add mysqld # 把mysqld的脚本添加到systemctl的管理中
systemctl start mysqld
###至此,启动方式可以是
service mysqld start
systemctl start mysqld
/etc/init.d/mysqld start
/app/database/mysql/support-files/mysql.server start


# 12 在登陆前修改密码(使用mysqld --initialize 初始化的数据)
mysqladmin -uroot -p password lqz1234.
输入原始密码
使用支付宝打赏
使用微信打赏

点击上方按钮,请我喝杯咖啡!

扫描二维码,分享此文章