02-MySQL 介绍和安装
MySQL 介绍和安装
1、什么是数据?
数据:
文字、图片、视频。。。人类认知的数据表现方式
计算机:
二进制、16进制的机器语言
基于数据的重要性和复杂性的不同,我们可能有不同的管理方式。
哪些数据是适合存储到数据库的呢?
>重要性比较高的
>关系较复杂的数据
2、什么是数据库管理系统(DBMS)?
RDBMS: 关系型数据库管理系统
>比较适合于,安全级别要求高的数据以及关系较复杂的数据
NoSQL:非关系型数据库管理系统
>适合于高性能存取数据,一般是配合RDBMS进行使用的
>针对大数据处理分析,分布式架构更加擅长
NEWSQL:新式的关系型数据库管理系统
>针对OLTP(读-写)工作负载,追求提供和NoSQL系统相同的扩展性能,且仍然保持ACID和SQL等特性
3、数据库管理系统种类
RDBMS :
>MySQL 、Oracle、MSSQL(SQL Server)、PG
NoSQL:Not Only SQL
>键-值(key-value):Redis, memcached,ES(Elasticsearch)
>文档(document):MongoDB
NEWSQL(分布式):
>TiDB,Spanner,AliSQL,OB,PolarDb
4、MySQL简介及产品线
4.1 MySQL行业主流版本:
>5.6
>5.7
>8.0 (现在开始研究新特性)
4.2 企业版本选择(MySQL分支版本),笔试题
Oracle:
>MySQL官方版
红帽 :
>MariaDB
Percona:
>PerconaDB
4.3 版本选择建议要上新环境
1. 一般选择官方主流版本:5.6,5.7
2. GA(稳定发布版)
3. 6-12月的产品版本
4.4 课程版本:
企业版:Enterprise , 互联网行业一般不选择.
社区版本:选择
源码包:source code .tar.gz
通用二进制
面试题:
你们公司用什么版本数据库? 具体什么小版本号?
5.6.20 5.6.34 5.6.36 5.6.38(20170913) 5.6.40
5.7.18 5.7.20(20170913) 5.7.24
8.0.14 8.0.15 8.0.16 (过渡)
【相关文章:搭建lnmp平台】 点我快速打开文章
5、MySQL二进制安装
【百度网盘】【007-MySQL-5.7.26】点我快速打开分享(若异常,请私信,万分感谢) 【提取码:lc16 】
【官方地址】【163镜像】点我快速打开下载
5.1 创建软件目录
mkdir -p /server/tools
cd /server/tools/
ls
yum install -y lrzsz
ls -lh
5.2 解压、移动、做软连接
tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
mkdir -p /application
mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql-5.7.26
ln -s /application/mysql-5.7.26 /application/mysql
5.3 修改环境变量:
echo 'export PATH=/application/mysql/bin/:$PATH' >>/etc/profile
source /etc/profile
5.4 建立 mysql 用户和组 (如果已有可忽略)
useradd -s /sbin/nologin -M mysql
5.5 删除系统自带的 mariadb
rpm -e --nodeps mariadb-libs
5.6 添加一块新磁盘,模拟生产环境数据盘。格式化并挂载(可省略)
5.6.1 虚拟机关机,添加一块新磁盘
5.6.2 重新开机,查看磁盘是否已有
fdisk -l
5.6.3 格式化并设置开机自启动挂载
mkfs.xfs /dev/sdb <-->格式化新添的磁盘,不需要分区
blkid |grep sdb <-->查看 /dev/sdb 的UUID(根据你的实际情况进行下一步)
vim /etc/fstab
tail -1 /etc/fstab #查看是否写入成功
5.6.4 挂载目录
mkdir -p /data
mount -a
df -h|grep data
5.6.5 创建挂载点目录(即数据库存放数据目录)
mkdir -p /data/mysql/data
5.7 修改权限相关目录
chown -R mysql.mysql /application/*
chown -R mysql.mysql /data/
5.8 安装依赖库
yum install -y libaio-devel
5.9 初始化数据(建库)
- 方法一:初始化数据,初始化管理员的临时密码
cd
mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
- 方法二 : 初始化数据,初始化管理员的密码为空
\rm -rf /data/mysql/data/*
mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
5.10 初始化数据时可能出现的报错总结:
- 报错原因1: Linux 系统中缺少 libaio-devel 软件包
[root@mine ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[root@mine ~]# yum install -y libaio-devel #解决方法
- 报错原因2: 在 /data/mysql/data 存在文件
[root@mine ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
2019-06-13T06:36:54.630751Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-06-13T06:36:54.793112Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2019-06-13T06:36:54.793473Z 0 [ERROR] Aborting
[root@mine ~]# \rm -rf /data/mysql/data/* #解决方法
5.11 MySQL 5.7 版本新特性重要说明:
5.7开始,MySQL加入了全新的 密码的安全机制:
- 1.初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)
- 2.密码复杂度:长度:超过12位? 复杂度:字符混乱组合
- 3.密码过期时间180天
注释:MySQL5.6 初始化的区别
/application/mysql/scripts/mysql_install_db --user=mysql --datadir=/application/mysql/data --basedir=/application/mysql
5.12 配置文件的简单准备
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
cat /etc/my.cnf
5.13 启动数据库
- 方法一:数据库自带的启动脚本
cd /application/mysql/support-files/
ll
./mysql.server start
./mysql.server stop
./mysql.server restart
./mysql.server status
- 方法二:使用service和/etc/init.d方式 ( CentOS 7 已经很少用了 )
cd
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld restart
/etc/init.d/mysqld restart
- 方法三:使用CentOS 7的 systemctl 管理启动
1)使用之前启动MySQL的方式关掉MySQL
/etc/init.d/mysqld stop
netstat -lntup|grep mysqld
2)书写systemd的配置文件
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
3)启动即可
systemctl start mysqld
systemctl daemon-reload <-->若报错,执行这条命令即可
netstat -lntup|grep mysqld
注意:将原来模式启动mysqld先关闭,然后再用systemd管理。
systemctl start/stop/restart/status mysqld
6、安装后的简单管理
6.1 设置管理root密码
systemctl start mysqld
netstat -lntup|grep mysqld
mysql
mysqladmin -uroot -p password 123
mysql
mysql -uroot -p
查看用户基本信息
5.6版本:
>select user,password,host from mysql.user;
5.7版本:
>select user,authentication_string,host from mysql.user;
>desc mysql.user;
6.2 重置管理员密码
6.2.1 密码知道
mysqladmin -uroot -p123 password 123456
mysql -uroot -p123456
6.2.2 密码忘记
1) 关闭数据库
systemctl stop mysqld
2) 启动数据库到维护模式
mysqld_safe --skip-grant-tables --skip-networking &
3) 登录并修改密码
mysql
alter user root@'localhost' identified by '1';
flush privileges;
alter user root@'localhost' identified by '1';
4) 关闭数据库,正常启动验证
systemctl stop mysqld
systemctl start mysqld
mysql -uroot -p1
小结:
1 版本 (主流版本的GA时间了解一下)
>5.6 5.7
>5.6.38 5.7.20
>20170913
(1) 初始化方式变了
mysql_install_db
mysqld --initialize-insecure
(2) 用户安全
12位
180
4种复杂度
(3)密码字段
authentication_strings
2 安装方法:
>二进制
>源码
>yum
3 建库(初始化数据库)
>mysqld --intialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql
4 简易的配制文件/etc/my.cnf
>user
>basedir
>datadir
>server_id
>port
>socket
5 管理员密码
>mysqladmin -uroot -p password xx
【本文图片下载地址】【001-MySQL 介绍和安装】点我快速打开分享(若异常,请私信,万分感谢) 【提取码:mdl5 】
今天你学习了吗?若有疑问,请留言、私信或加QQ群:647033350,大家一起进步吧!
02-MySQL 介绍和安装的更多相关文章
- MySQL系列-第一章节:MySQL介绍与安装
1.数据库介绍 1.1.什么是数据库`<Database>` 简单说存放数据的仓库,这个仓库按照一定的数据结构<数据结构是指数据的组织形式或数据之间的联系>来组织.存储的,我们 ...
- Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...
- mysql介绍及安装
一.MySQL介绍 1.标志 MySQL的海豚标志的名字叫"sakila",它是由MySQL AB的创始人从用户在"海豚命名"的竞赛中建议的大量的名字表中选出的 ...
- MySQL介绍及安装(一)
一.关系型数据库和非关系型数据库 1.1:关系型数据库 关系型数据库是把复杂的数据结构归结为简单的二元关系(即二维表格的形式),在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上的,通过 ...
- MySQL介绍与安装
mysql介绍 #mysql就是一个基于socket编写的C/S架构的软件 #客户端软件 mysql自带:如mysql命令,mysqldump命令等 python模块:如pymysql 数据库管理软件 ...
- MySQL介绍及安装&MySQL软件基本管理
mysql介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好 ...
- 第一章·MySQL介绍及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 4.1 什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客 ...
- MySQL(介绍,安装,密码操作,权限表)
一.数据库介绍1.数据库相关概念 a.支持并发 b.锁的问题 c.对客户端请求进行认证 d.存取效率(降低IO次数) 数据库服务器(本质就是一个台计算机,该计算机之上安装 ...
- MySQL介绍,下载,安装,配置
MySQL用了很多年了,今天写个总结. 一.介绍 MySQL是开源软件,后来归Oracle所有.开源便于软件的完善改进.但开源不等于滥用,也不等于完全免费.MySQL有商业版,商业用途是付费的.也有免 ...
- 02 Vue介绍与安装,指令系统 v-*、音乐播放器
VUE文档 https://cn.vuejs.org/v2/guide/ 1.vue的介绍 尤雨溪 1.vue的优点 2.vue的介绍 3.vue的安装 4.声明式渲染 <body> &l ...
随机推荐
- C++:map用法及元素的默认值
C++:map用法 一.map基本用法 键值对 第一个参数为键的类型,第二个参数为值的类型. 源代码 #include <iostream> #include <string> ...
- 谷歌浏览器安装JsonView插件
可方便阅读json格式文件,参考https://www.jianshu.com/p/6ea9f2245f4d
- day6_异常捕捉
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/11 14:14 # @Author : 大坏男孩 # @File : d ...
- Unreal Engine 4 系列教程 Part 10:制作简单FPS游戏
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- LeetCode 189:旋转数组 Rotate Array
公众号:爱写bug(ID:icodebugs) 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. Given an array, rotate the array to the ...
- Django学习笔记(11)——开发图书管理页面
一,项目题目: 开发图书管理页面 该项目主要练习Django对多个数据库进行增删改查的操作. 二,项目需求: 基础需求:75% 1. 列出图书列表.出版社列表.作者列表 2. 点击作者,会列出其出版的 ...
- Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局
传统弹性伸缩的困境 弹性伸缩是 Kubernetes 中被大家关注的一大亮点,在讨论相关的组件和实现方案之前.首先想先给大家扩充下弹性伸缩的边界与定义,传统意义上来讲,弹性伸缩主要解决的问题是容量规划 ...
- Linux iSCSI 磁盘共享管理
Linux iSCSI 磁盘共享管理 iSCSI 服务是通过服务端(target)与客户端(initiator)的形式来提供服务.iSCSI 服务端用于存放存储源的服务器,将磁盘空间共享给客户使用,客 ...
- 单独KafkaConsumer实例and多worker线程。
1.单独KafkaConsumer实例and多worker线程.将获取的消息和消息的处理解耦,将消息的处理放入单独的工作者线程中,即工作线程中,同时维护一个或者若各干consumer实例执行消息获取任 ...
- Python urllib与requests、XML和HTMLParser
参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1019223241745024 Python 的内建模块urllib提供了一系列用于操作 ...