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 ...
随机推荐
- 爬虫---lxml简单操作
前几篇写了一些Beautiful Soup的一些简单操作,也拿出来了一些实例进行实践,今天引入一个新的python库lxmt,lxmt也可以完成数据的爬取哦 什么是lxml lxml是python的一 ...
- 如何将MagicaVoxel模型导入UE4中(1)
前言 当初在选择自己项目的美术风格时,由于自己的美术基础实在是太差,所以选择了体素风格来构建(其实还是MagicaVoxel的建模操作很容易上手),但是将自己千辛万苦做好的模型导入至项目中时,出现了这 ...
- 爬虫scrapy模块
首先下载scrapy模块 这里有惊喜 https://www.cnblogs.com/bobo-zhang/p/10068997.html 创建一个scrapy文件 首先在终端找到一个文件夹 输入 s ...
- Html学习之五(嵌套之简单购物界面设计)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Html学习之三(列表)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- day81_10_30redis的简单操作。
一.启动redis 在启动redis中可以持续的启动redis服务端,启动的服务端即使被关掉也不会停止服务: >: redis-server & 在客户端连接刚刚启动的redis服务端: ...
- lua 7 运算符
转自:http://www.runoob.com/lua/lua-miscellaneous-operator.html Lua提供了以下几种运算符类型: 算术运算符 关系运算符 逻辑运算符 其他运算 ...
- 【2019.7.24 NOIP模拟赛 T1】道路建设(road)(水题)
原题与此题 原题是一道神仙不可做题,两者区别在于,原题不能有重边和自环. 然而,这题可以有重边... 于是这题就变成了一道大水题. 此题的解法 考虑如何构造. 对于\(n\le10^4\)的情况: 对 ...
- 【转】java MessageDigest类的作用 :提供信息摘要 算法( MD5 或 SHA 等)的功能
一.结构和概述: java.lang.Object java.security.MessageDigestSpi java.security.MessageDigest 声明:public abstr ...
- java.sql.SQLException: Could not establish connection to 192.168.8.111:10000/default: java.net.ConnectException: Connection refused: connect at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveC
java.sql.SQLException: Could not establish connection to 192.168.8.111:10000/default: java.net.Conne ...