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. 安装Rtools

    1.好多工具需要安装Rtools install.packages("installr") install.packages("stringr") ###依赖包 ...

  2. 基于Nginx和openssl实现https

    [root@localhost ssl]# yum -y install openssl [root@localhost ssl]# mkdir /usr/local/nginx/conf/ssl/ ...

  3. 数据仓库010 - MySQL查看所有存储过程,函数,视图,触发器

    .查询数据库中的存储过程和函数 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE ...

  4. R语言两自定义矩阵的基本运算-实例

    #sink("matrix_history.txt") cat("请输入矩阵的行和列数,“,”号隔开,建议行 等于列 数:") number<-scan( ...

  5. Python之Flask框架项目Demo入门

    Python+Flask框架项目Demo入门 本例子用到了 Flask+蓝图+Flask-Login+SQLAlchemy+WTForms+PyMySQL相关架构 Flask Web框架介绍 Flas ...

  6. 【shell脚本】定时备份日志===logBackup.sh

    定时备份日志 设置执行权限 [root@VM_0_10_centos shellScript]# chmod a+x logBackup,sh 脚本内容 [root@VM_0_10_centos sh ...

  7. jQuery 源码解析(七) jQuery对象和DOM对象的互相转换

    jQuery对象是一个类数组对象,它保存的是对应的DOM的引用,我们可以直接用[]获取某个索引内的DOM节点,也可以用get方法获取某个索引内的DOM节点,还可以用toArray()方法把jQuery ...

  8. Clickhouse单机部署以及从mysql增量同步数据

    背景: 随着数据量的上升,OLAP一直是被讨论的话题,虽然druid,kylin能够解决OLAP问题,但是druid,kylin也是需要和hadoop全家桶一起用的,异常的笨重,再说我也搞不定,那只能 ...

  9. Mysql 二进制日志备份还原

    Mysql 二进制日志备份还原 一.开启二进制日志 1.进入配置文件[mysqld]下添加配置 方案一 vim /etc/my.cnf log-bin = /usr/local/mysql/logs/ ...

  10. Java面试- JVM 内存模型讲解

    经常有人会有这么一个疑惑,难道 Java 开发就一定要懂得 JVM 的原理吗?我不懂 JVM ,但我照样可以开发.确实,但如果懂得了 JVM ,可以让你在技术的这条路上走的更远一些. JVM 的重要性 ...