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. JAVA中this和super用法

    参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...

  2. 扎西平措 201571030332《面向对象程序设计 Java 》第一周学习总结

    <面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...

  3. 【Eureka篇三】Eureka服务注册(2)

    注:修改[Rest微服务案例(二)]中的子模块microservicecloud-provider-dept-8001. 一.项目改造 1. 修改pom.xml 添加eureka client的依赖 ...

  4. SpringMVC详细流程(一)

    Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模 ...

  5. MySQL学习笔记8——多表查询

    多表查询 多表查询 *合并结果集 *连接查询 *子查询 合并结果集 *要求被合并的表中,列的类型和列数相同(实际上是查询的结果集列类型和列数相同即可) *UNION,去除重复行 *UNION ALL, ...

  6. 42 在Raspberry Pi上安装dlib表情识别

    https://www.jianshu.com/p/848014d8dea9 https://www.pyimagesearch.com/2017/05/01/install-dlib-raspber ...

  7. Serializers 序列化组件——ModelSerializer详解

    前面学习Serializers用法时,发现所有的序列化都与我们的模型紧密相关. django_restframework也给我提供了跟模型紧密相关的序列化器——ModelSerializer. 它会根 ...

  8. SuperSocket 2.0 发布第一个预览版, 另寻找Yang Fan哥哥

    昨天,SuperSocket的作者发布了2.0版本的第一个预览版.SuperSocket 2.0 是一个经过全新设计的,第一个完全基于.NET Core的版本.作者正在积极尝试提供更简单易用的API的 ...

  9. Unreal Engine 4 系列教程 Part 8:粒子系统教程

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

  10. 在Anaconda中使用linux的命令

    在Anaconda中使用linux的命令 1.在anaconda中执行以下命令即可(要先activation 想用的环境): conda install m2-base 2.安装git.添加环境变量即 ...