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 ...
随机推荐
- 安装Rtools
1.好多工具需要安装Rtools install.packages("installr") install.packages("stringr") ###依赖包 ...
- 基于Nginx和openssl实现https
[root@localhost ssl]# yum -y install openssl [root@localhost ssl]# mkdir /usr/local/nginx/conf/ssl/ ...
- 数据仓库010 - MySQL查看所有存储过程,函数,视图,触发器
.查询数据库中的存储过程和函数 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE ...
- R语言两自定义矩阵的基本运算-实例
#sink("matrix_history.txt") cat("请输入矩阵的行和列数,“,”号隔开,建议行 等于列 数:") number<-scan( ...
- Python之Flask框架项目Demo入门
Python+Flask框架项目Demo入门 本例子用到了 Flask+蓝图+Flask-Login+SQLAlchemy+WTForms+PyMySQL相关架构 Flask Web框架介绍 Flas ...
- 【shell脚本】定时备份日志===logBackup.sh
定时备份日志 设置执行权限 [root@VM_0_10_centos shellScript]# chmod a+x logBackup,sh 脚本内容 [root@VM_0_10_centos sh ...
- jQuery 源码解析(七) jQuery对象和DOM对象的互相转换
jQuery对象是一个类数组对象,它保存的是对应的DOM的引用,我们可以直接用[]获取某个索引内的DOM节点,也可以用get方法获取某个索引内的DOM节点,还可以用toArray()方法把jQuery ...
- Clickhouse单机部署以及从mysql增量同步数据
背景: 随着数据量的上升,OLAP一直是被讨论的话题,虽然druid,kylin能够解决OLAP问题,但是druid,kylin也是需要和hadoop全家桶一起用的,异常的笨重,再说我也搞不定,那只能 ...
- Mysql 二进制日志备份还原
Mysql 二进制日志备份还原 一.开启二进制日志 1.进入配置文件[mysqld]下添加配置 方案一 vim /etc/my.cnf log-bin = /usr/local/mysql/logs/ ...
- Java面试- JVM 内存模型讲解
经常有人会有这么一个疑惑,难道 Java 开发就一定要懂得 JVM 的原理吗?我不懂 JVM ,但我照样可以开发.确实,但如果懂得了 JVM ,可以让你在技术的这条路上走的更远一些. JVM 的重要性 ...