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 介绍和安装的更多相关文章

  1. MySQL系列-第一章节:MySQL介绍与安装

    1.数据库介绍 1.1.什么是数据库`<Database>` 简单说存放数据的仓库,这个仓库按照一定的数据结构<数据结构是指数据的组织形式或数据之间的联系>来组织.存储的,我们 ...

  2. Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)

    本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...

  3. mysql介绍及安装

    一.MySQL介绍 1.标志 MySQL的海豚标志的名字叫"sakila",它是由MySQL AB的创始人从用户在"海豚命名"的竞赛中建议的大量的名字表中选出的 ...

  4. MySQL介绍及安装(一)

    一.关系型数据库和非关系型数据库 1.1:关系型数据库 关系型数据库是把复杂的数据结构归结为简单的二元关系(即二维表格的形式),在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上的,通过 ...

  5. MySQL介绍与安装

    mysql介绍 #mysql就是一个基于socket编写的C/S架构的软件 #客户端软件 mysql自带:如mysql命令,mysqldump命令等 python模块:如pymysql 数据库管理软件 ...

  6. MySQL介绍及安装&MySQL软件基本管理

    mysql介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好 ...

  7. 第一章·MySQL介绍及安装

    一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 4.1 什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客 ...

  8. MySQL(介绍,安装,密码操作,权限表)

    一.数据库介绍1.数据库相关概念 a.支持并发     b.锁的问题     c.对客户端请求进行认证     d.存取效率(降低IO次数)    数据库服务器(本质就是一个台计算机,该计算机之上安装 ...

  9. MySQL介绍,下载,安装,配置

    MySQL用了很多年了,今天写个总结. 一.介绍 MySQL是开源软件,后来归Oracle所有.开源便于软件的完善改进.但开源不等于滥用,也不等于完全免费.MySQL有商业版,商业用途是付费的.也有免 ...

  10. 02 Vue介绍与安装,指令系统 v-*、音乐播放器

    VUE文档 https://cn.vuejs.org/v2/guide/ 1.vue的介绍 尤雨溪 1.vue的优点 2.vue的介绍 3.vue的安装 4.声明式渲染 <body> &l ...

随机推荐

  1. C++:map用法及元素的默认值

    C++:map用法 一.map基本用法 键值对 第一个参数为键的类型,第二个参数为值的类型. 源代码 #include <iostream> #include <string> ...

  2. 谷歌浏览器安装JsonView插件

    可方便阅读json格式文件,参考https://www.jianshu.com/p/6ea9f2245f4d

  3. day6_异常捕捉

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/11 14:14 # @Author : 大坏男孩 # @File : d ...

  4. Unreal Engine 4 系列教程 Part 10:制作简单FPS游戏

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...

  5. LeetCode 189:旋转数组 Rotate Array

    公众号:爱写bug(ID:icodebugs) 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. Given an array, rotate the array to the ...

  6. Django学习笔记(11)——开发图书管理页面

    一,项目题目: 开发图书管理页面 该项目主要练习Django对多个数据库进行增删改查的操作. 二,项目需求: 基础需求:75% 1. 列出图书列表.出版社列表.作者列表 2. 点击作者,会列出其出版的 ...

  7. Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局

    传统弹性伸缩的困境 弹性伸缩是 Kubernetes 中被大家关注的一大亮点,在讨论相关的组件和实现方案之前.首先想先给大家扩充下弹性伸缩的边界与定义,传统意义上来讲,弹性伸缩主要解决的问题是容量规划 ...

  8. Linux iSCSI 磁盘共享管理

    Linux iSCSI 磁盘共享管理 iSCSI 服务是通过服务端(target)与客户端(initiator)的形式来提供服务.iSCSI 服务端用于存放存储源的服务器,将磁盘空间共享给客户使用,客 ...

  9. 单独KafkaConsumer实例and多worker线程。

    1.单独KafkaConsumer实例and多worker线程.将获取的消息和消息的处理解耦,将消息的处理放入单独的工作者线程中,即工作线程中,同时维护一个或者若各干consumer实例执行消息获取任 ...

  10. Python urllib与requests、XML和HTMLParser

    参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1019223241745024 Python 的内建模块urllib提供了一系列用于操作 ...