美文网首页
MySQL--简介及安装

MySQL--简介及安装

作者: linux_豪哥 | 来源:发表于2019-08-01 20:41 被阅读0次

    如果您对数据库感兴趣,可以添加DBA解决方案QQ群:855439640

    第一章MySQL大纲介绍

    1,官方定义的MySQL DBA工作内容

    (1)运维DBA
    初级:各版本、各平台安装搭建、升级
    中级:体系结构原理、基础管理(启动关闭、初始化配置文件管理、多实例管理、用户权限管理、基本SQL(增删改查))、 日志管理、备份与恢复、主从复制(构建、状态监控) 
    高级:高可用(MGR、InnoDB Cluster)、高性能(优化)
    (2)开发DBA
    懂至少一门开发语言 :JAVA、Python
    基本SQL语句深入学习(增删改查)、数据库结构设计(建模)
    高级SQL:存储过程、函数、触发器、视图、事件
    
    

    2,老男孩的MySQL课程-2019- 09月 - 中级DBA要求(80%以上)

    (1)MySQL 5.7 安装部署(二进制)*****
        编译自己扩展
    (2)MySQL升级步骤扩展 ***
    (3)MySQL5.7 体系结构原理 *****
    (4)MySQL基础管理  *****
    (5)基础SQL语句使用 *****
    (6)SQL高级应用  ***
    (7)Information_schema获取元数据 ***
    (8)索引、执行计划管理(基础优化)*****
    (9)存储引擎  *****
    (10)日志管理 *****
    (11)备份与恢复 ******
    (12)主从复制及架构演变 ******
    (13)传统的高可用及读写分离(MHA&Atlas)****
    (14)传统分布式架构设计与实现-扩展(Mycat--->DBLE,DRDS)**
    (15)MySQL 5.7 高可用及分布式架构-扩展(MGR,InnoDB Cluster)***
    (16)MySQL优化(安全、性能) ****
    (17)MySQL 监控(zabbix、Open-falcon)    ****
     (18) RDS(阿里云课程)    *****
    
    额外要会的:
        Redis
        mongodb     
    了解: 
        PG
        Oracle  
    
    

    3,DBA职业素养


    3.1,人品

    责任-----权利
    
    

    3.2 严谨

    磁带库----->备份软件-----17楼
    数据库修改\删除类的命令时 再三考虑,而且要有理论或者实践的支撑
    
    官方文档
    源码
    有经验的人讨论
    

    3.3 请收起你的好奇心!!!!!

    注意规范:
    脱库? 华住网(ip root 密码),“脱敏”!!!!!。
    学会保护自己!!!
    
    

    3.3,细心

    对每一步操作都要负责
    把简单的事情做到最专业
    

    3.4,心态

    别惹事,出事别怕事
    
    

    3.5,熟悉操作系统(精通)

    3.6,熟悉公司业务

    业务?
        产品的功能
        用户的行为(热功能,热数据)      
    
    

    3.7,熟悉行业

    熟悉行业发展趋势
    版本
    数据库产品类型
    https://db-engines.com/en/ranking
    
    

    3.8,喜欢数据库

    体验很重要
    
    

    第二章:MySQL介绍和安装

    1,什么是数据?

    数据:文字、图片、视频。。。人类认知的数据表现方式
    计算机:二进制、16进制的机器语言
    基于数据的重要性和复杂性的不同,我们可能有不同的管理方式。
    
    哪些数据是适合存储到数据库的呢?
    重要性比较高的
    关系较复杂的数据
    
    

    2,什么是数据库管理系统(DBMS)?

    RDBMS: 关系型数据库管理系统
    二维表的方式组织和存储数据
    安全,强一致性,功能强大
    比较适合于,安全级别要求高的数据以及关系较复杂的数据
    
    NoSQL:非关系型数据库管理系统
    适合于高性能存取数据,一般是配合RDBMS进行使用的
    针对大数据处理分析,分布式架构更加擅长
    
    

    3,数据库管理系统种类

    RDBMS  :
    MySQL 、Oracle、MSSQL(SQL Server)、PG
    
    NoSQL:Not Only SQL
    键-值(key-value):Redis, memcached
    文档(document):Mongodb
    
    

    4,MySQL的简介及产品线

    4.1 MySQL行业主流版本:

        5.6  
        5.7    
        8.0(现在开始研究新特性)  从8.0.11开始是正式版本  之前是测试版本(8.0.1-8.0.10)
    
    

    4.2企业版本选择(MySQL分支版本),笔试题

    Oracle:
          MySQL官方版
    红帽  :
          MariaDB 
          5.5版本号之后就是10.x开始
    Percona:
          PerconaDB
    
    

    4.3版本选择建议要上新环境

    1.一般选择官方主流版本:5.6,5.7 
    2.GA(稳定发布版)
    3.6-12月的产品版本
    
    

    4.4课程版本:

    5.7.26  二进制安装,其他安装方式自己扩展
    
    

    4.5如何获取MySQL软件

    企业版:Enterprise  , 互联网行业一般不选择.
    社区版本:选择
    源码包:source code    .tar.gz   
    通用二进制   
    面试题:
    你们公司用什么版本数据库? 具体什么小版本号?
    5.6.20 5.6.34 5.6.36  5.6.38  5.6.40    
    5.7.18  5.7.20  5.7.22  5.7.26
    面试题:
    你们公司用的什么版本的MySQL?  你在公司干几年了?
    

    5,MySQL的二进制安装

    5.1创建软件目录:

    [root@db01 ~]# mkdir /application
    上传软件到此目录
    [root@db01 /application]# ls
    mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    

    5.2。解压并改名为MySQL的

    [root@db01 application]# mv mysql-5.7.26-linux-glibc2.12-x86_64  mysql
    [root@db01 application]# ll /application/mysql/
    total 36
    drwxr-xr-x  2 root root   4096 Jul 14 19:02 bin
    -rw-r--r--  1 7161 31415 17987 Apr 13 21:32 COPYING
    drwxr-xr-x  2 root root     55 Jul 14 19:02 docs
    drwxr-xr-x  3 root root   4096 Jul 14 19:02 include
    drwxr-xr-x  5 root root    230 Jul 14 19:02 lib
    drwxr-xr-x  4 root root     30 Jul 14 19:02 man
    -rw-r--r--  1 7161 31415  2478 Apr 13 21:32 README
    drwxr-xr-x 28 root root   4096 Jul 14 19:02 share
    drwxr-xr-x  2 root root     90 Jul 14 19:02 support-files
    
    
    

    修改环境变量:

    vim /etc/profile
    export PATH=/application/mysql/bin:$PATH
    [root@db01 ~]# source /etc/profile
    [root@db01 ~]# mysql -V
    mysql  Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using  EditLine wrapper
    
    

    5.3。用户的创建处理原始环境

    [root@db01 ~]# yum remove mariadb-libs-5.5.60-1.el7_5.x86_64 -y
    [root@db01 ~]# rpm -qa |grep mariadb
    [root@db01 ~]# useradd -s /sbin/nologin mysql
    
    

    5.4。创建数据路径并授权

    1. 添加一块新磁盘模拟数据盘
    2. 格式化并挂载磁盘
    [root@db01 ~]# mkfs.xfs /dev/sdc
    [root@db01 ~]# mkdir /data
    [root@db01 ~]# blkid
    [root@db01 ~]# vim /etc/fstab 
    [root@db01 ~]# UUID="b7fde522-aa37-412a-9584-8313a673c5cc" /data xfs defaults 0 0
    [root@db01 ~]# mount -a
    [root@db01 ~]# df -h
    

    5.5。创建相关目录并修改权限

    chown -R mysql.mysql /application/*
    mkdir /data/mysql/data -p 
    chown -R mysql.mysql /data
    
    

    5.6。初始化数据(建库)

    方法一:

    初始化数据,初始化管理员的临时密码
    [root@db01 ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data 
    
    2019-04-18T03:21:53.381108Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2019-04-18T03:21:54.583415Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2019-04-18T03:21:54.697859Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2019-04-18T03:21:54.760821Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 1daa0c57-6189-11e9-bc80-000c294234c8.
    2019-04-18T03:21:54.770856Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2019-04-18T03:21:54.772016Z 1 [Note] A temporary password is generated for root@localhost: 9LN.fh_Ea#uU
    
    
    image
    报错原因: Linux系统中缺少libaio-devel 软件包
    解决:
    yum install -y libaio-devel
    
    
    image
    报错原因:
    在/data/mysql/data 存在文件
    解决:
    \rm -rf /data/mysql/data/*
    
    

    新特性重要说明:
    5.7开始,MySQL加入了全新的密码的安全机制:
    1。初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)
    2。密码复杂度:长度:超过12位?复杂度:字符混乱组合
    3.密码过期时间180天

    方法二 :
    初始化数据,初始化管理员的密码为空
    
     \rm -rf /data/mysql/data/*
     mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
    
    2019-04-18T03:37:43.146018Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2019-04-18T03:37:43.892132Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2019-04-18T03:37:43.970412Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2019-04-18T03:37:44.029490Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5378f3b3-618b-11e9-9164-000c294234c8.
    2019-04-18T03:37:44.041469Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2019-04-18T03:37:44.042348Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
    [root@db01 ~]# 
    
    [root@db01 data]# cd /data/mysql/data/
    [root@db01 data]# ll
    total 122924
    -rw-r----- 1 mysql mysql       56 Jul 22 15:54 auto.cnf
    -rw-r----- 1 mysql mysql     3384 Jul 22 20:55 db01.err
    -rw-r----- 1 mysql mysql        5 Aug  1 16:32 db01.pid
    -rw-r----- 1 mysql mysql      419 Jul 22 15:54 ib_buffer_pool
    -rw-r----- 1 mysql mysql 12582912 Aug  1 16:32 ibdata1
    -rw-r----- 1 mysql mysql 50331648 Aug  1 16:32 ib_logfile0
    -rw-r----- 1 mysql mysql 50331648 Jul 22 15:54 ib_logfile1
    -rw-r----- 1 mysql mysql 12582912 Aug  1 16:32 ibtmp1
    drwxr-x--- 2 mysql mysql     4096 Jul 22 15:54 mysql
    drwxr-x--- 2 mysql mysql     8192 Jul 22 15:54 performance_schema
    drwxr-x--- 2 mysql mysql     8192 Jul 22 15:54 sys
    
    
    

    注释:5.6初始化的区别

    /application/mysql/scripts/mysql_install_db  --user=mysql --datadir=/application/mysql/data --basedir=/application/mysql
    
    

    5.7书写默认配置文件

    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
    
    

    5.8配置启动脚本:

    sys-v
    [root@db01 mysql]# cd /application/mysql/support-files
    [root@db01 support-files]# ./mysql.server start
    Starting MySQL.Logging to '/data/mysql/db01.err'.
     SUCCESS! 
    [root@db01 /etc/init.d]# cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld 
    [root@db01 /etc/init.d]# service mysqld restart
    
    

    5.9使用systemd管理mysql

    注意: sysv方式启动过的话,需要先提前关闭,才能以下方式登录
    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
    
    systemctl  start/stop/restart/status   mysqld
    
    

    6.安装后的简单管理

    管理员密码的设定(root@localhost)
    [root@db01 ~]# mysqladmin -uroot -p password 123
    Enter password: 
    mysqladmin: [Warning] Using a password on the command line interface can be insecure.
    Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
    
    5.6版本:
    select user,password,host from mysql.user;
    5.7 中用户基本信息
    select user,authentication_string,host from mysql.user;
    desc  mysql.user;
    
    

    管理员用户密码忘记了?

    --skip-grant-tables   跳过授权表
    --skip-networking     跳过远程登录
    
    1 关闭数据库
    [root@db01 ~]# /etc/init.d/mysqld stop
    Shutting down MySQL.. SUCCESS! 
    
    2 启动数据库到维护模式
    [root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &
    
    3 登录并修改密码
    SQL --- alter
    mysql> alter user root@'localhost' identified by '1';
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
    mysql> flush privileges;
    mysql> alter user root@'localhost' identified by '1';
    Query OK, 0 rows affected (0.01 sec)
    
    SQL --- update
    update mysql.user set authentication_string=PASSWORD('123456') where user='root' and hoost='localhost';
    flush privileges;
    
    4 关闭数据库,正常启动验证
    

    小结:
    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_string
    
    

    2.安装方法:

    二进制
    源码
    yum 
    
    

    3.建库(初始化数据库)

     mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
    
    

    4.简易的配制文件的/etc/my.cnf

    user 
    basedir
    datadir 
    server_id
    port
    socket 
    
    
    1. 管理员密码
    mysqladmin -uroot -p password xxx
    

    6.管理员密码忘记

    --skip-grant-tables   跳过授权表
    --skip-networking     跳过远程登录
    

    相关文章

      网友评论

          本文标题:MySQL--简介及安装

          本文链接:https://www.haomeiwen.com/subject/cdjqdctx.html