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. 新建全色或者resize(毫无价值,只是做记录)

    import glob import os,sys import shutil import numpy as np import cv2 import matplotlib.pyplot as pl ...

  2. luoguP4331 [BOI2004]Sequence 数字序列

    题意 大力猜结论. 首先将所有\(a_i\)变为\(a_i-i\),之后求不严格递增的\(b_i\),显然答案不变,最后\(b_i\)加上\(i\)即可. 考虑两种特殊情况: 1.\(a[]\)是递增 ...

  3. numpy-数据清洗

    一.对G列数据进行清洗,根据['无','2000-3999','4000-5999','6000-7999','8000-9999','>10000']进行划分 去处重复值 # 删除重复值 # ...

  4. .Net Framework与.Net Core文件系统的差异

    在.Net Fx下,可通过try/catch实例化DirectoryInfo/FileInfo来判断用户输入的路径是否合法,但我把代码拷到 .Net Core 下运行,发现运行结果完全不同 var d ...

  5. java8 LinkedHashMap 原理

    LinkedHashMap 原理 基于jdk1.8 HashMap原理:http://www.cnblogs.com/zhaojj/p/7805376.html LinkedHashMap 继承Has ...

  6. jpa复杂查询groupby失败的原因以及替代方法-20190824

    问题 1  jpa specification 复杂查询,拼接group by 时,分页会触发select  count (*),导致指定select * from table group by 字段 ...

  7. LeetCode1——两数之和

    最近在家拧三阶魔方,把初级的玩法掌握了,也就是可以还原六个面了,速度不快,但是也很兴奋.三阶魔方的初级玩法按照套路拧就可以了,每一步需要完成的任务,该步骤转动的方法基本都是固定的,而且变化也并不是特别 ...

  8. CentOS7-安装后常见问题--ssh慢,汉字乱码gbk,-locale设置等

    00.ssh 慢问题解决修改:  [test@centos ~]$ sudo vi /etc/ssh/sshd_config /** 使用/命令查找 API 字符串*/ # GSSAPI option ...

  9. vue中使用better-scroll的2种方式简述

    前言 better-scroll官方demo展示:https://ustbhuangyi.github.io/better-scroll/#/examples/en better-scroll官方文档 ...

  10. vue中引入mintui、vux重构简单的APP项目

    最近在学习vue时也了解到一些常用的UI组件,有用于PC的和用于移动端的.用于PC的有:Element(饿了么).iView等:用于移动端APP的有Vux.Mint UI(饿了么).Vant(有赞团队 ...