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. webstorm的git操作使用

    0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstorm去操作git. 对于git的使用,大家的使用方式均有不同,最王道的方式非命令行莫属,基于 ...

  2. NGINX动态增加模块,平滑升级

    这是一个小心活,不过,多操作几次,也就熟悉了. 参考URL: https://segmentfault.com/a/1190000006755963 一,安装nginx依赖包. yum install ...

  3. 源码编译Kubeadm二进制文件

    kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验k ...

  4. luoguP3431 [POI2005]AUT-The Bus

    安利系列博文 https://www.cnblogs.com/tyner/p/11565348.html https://www.cnblogs.com/tyner/p/11605073.html 做 ...

  5. 利用logistic回归解决多分类问题

    利用logistic回归解决手写数字识别问题,数据集私聊. from scipy.io import loadmat import numpy as np import pandas as pd im ...

  6. C++ class内的=重载,拷贝赋值函数copy op=,重载示例。必须是class内

    #include <iostream> // overloading "operator = " inside class // = 是一元操作符.不写,编译器会提供 ...

  7. 洛谷 P5596 【XR-4】题

    洛谷 P5596 [XR-4]题 洛谷传送门 题目描述 小 X 遇到了一道题: 给定自然数 a,ba,b,求满足下列条件的自然数对 (x,y)(x,y) 的个数: y^2 - x^2 = ax + b ...

  8. django 使用HttpResponse返回json数据为中文

    之前我用django一般用JsonResponse来返回json数据格式 但是发现返回中文的时候会乱码 from django.http import JsonResponse def test(re ...

  9. Java文件上传的几种方式

    文件上传与文件上传一样重要.在Java中,要实现文件上传,可以有两种方式: 1.通过Servlet类上传 2.通过Struts框架实现上传 这两种方式的根本还是通过Servlet进行IO流的操作. 一 ...

  10. Python连载32-多线程其他属性以及继承Thread类

    一.线程常用属性 1.threading.currentThread:返回当前线程变量 2.threading.enumerate:返回一个包含正在运行的线程的list,正在运行的线程指的是线程启动后 ...