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 ...
随机推荐
- 8. 多态——编译时类型&运行时类型
一.引用变量的两种类型 1. 编译时类型:由声明该变量时使用的类型决定 2. 运行时类型:由实际赋给该变量的对象决定 如果编译时类型和运行时类型不一致,就可能出现多态. class BaseClass ...
- 【CF981F】Round Marriage(二分答案,hall定理)
传送门 题意: 给出一个长度为\(L\)的环,标号从\(0\)到\(L-1\). 之后给出\(n\)个新郎,\(n\)个新娘离起点的距离. 现在新郎.新娘要一一配对,但显然每一对新人的产生都会走一定的 ...
- 类数组(Array-like)对象应用
类数组(Array-like)对象 slice 方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组.你只需将该方法绑定到这个对象上. 一个函数中的 arguments 就是一 ...
- luoguP4404缓存交换
https://www.luogu.org/problem/P4404 题意 你有一个大小为n的缓存区,有个长度为m的查询序列. 每次查询的时候需要把查询值放入缓存,若缓存已满,则先删除任一位置再将其 ...
- jmeter BeanShell的几种使用方式
jmeter的BeanShell Sampler,可以直接引用java代码,有下面3种方式: 1.直接输入java代码:2.导入java文件:3.导入class文件 BeanShell脚本访问变量主要 ...
- python27期JavaScript:
JavaScript:(简称“JS”) 是一种轻量级的编程语言(ECMAscript5或6)是一种解释性脚本语言(代码不进行预编译)主要用来向HTML页面添加交互行为JavaScript 是互联网上最 ...
- 2019 SDN上机第六次作业
1.实验拓扑 (1)实验拓扑 (2)使用python脚本完成拓扑搭建 from mininet.topo import Topo class Mytopo(Topo): def __init__(se ...
- 10.12 csp-s模拟测试70 木板+打扫卫生+骆驼
T1 木板 求$[\sqrt{n},n)$间有多少个数的平方是n的倍数 通过打表可以发现(我没带脑子我看不出来),符合条件的数构成一个等差数列,公差为首项 而首项就是将n质因数分解后每个质因数出现次数 ...
- [转]numpy的getA()/getA1()/getH()/getI()函数
转自https://blog.csdn.net/weixin_42906066/article/details/82625779 1.mat.getA() 将自身矩阵变量转化为ndarray类型的变量 ...
- 错误解决:android.view.InflateException: Binary XML file line #11: Error inflating class com.tony.timepicker.TimePicker
今天在做项目开发时遇到这么一个错误,完整的错误提示信息如下: java.lang.RuntimeException: Unable to start activity ComponentInfo{co ...