官方网址
  https://dev.mysql.com/downloads/mysql/
社区版本分析
  MySQL5.5:默认存储引擎改为InnoDB,提高性能和可扩展性,增加半同步复制
  MySQL5.6:提高InnoDB性能,支持延迟复制
  MySQL5.7:提升性能,增强复制功能
  https://www.jianshu.com/p/6f2cb7874abd MySQL 5.6 ,5.7 ,8.0    在安装部署的异同

DBA干点啥子?????
  初级:各版本、各平台安装搭建、升级

  中级:体系结构原理、基础管理(启动关闭、初始化配置文件管理、多实例管理、用户权限管理、基本SQL(增删改查))、
日志管理、备份与恢复、主从复制(构建、状态监控)

  高级:高可用(MGR、InnoDB Cluster)、高性能(优化)

常规安装MySQL
  1、检查版本和系统的适配度  
  2、环境介绍,将软件包传输到/root目录下,解压到/usr/local官方推荐安装路径
    [root@localhost ~]# cat /etc/redhat-release
    CentOS Linux release 7.4.1708 (Core)
    [root@localhost ~]# uname -a
    Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    [root@localhost ~]# ls -sh |grep mysql   
    376M mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
    [root@localhost ~]# mv /root/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz /usr/local/
    [root@localhost ~]# cd /usr/local/      
    [root@localhost local]# tar -xvf mysql-8.0.13-linux-glibc2.12-x86_us:m64.tar.xz
    [root@localhost local]# mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql
    [root@localhost local]# du -h --max-depth=1 #解压之后文件大小为2G
    2.0G ./mysql
    #MySQL底层是C和C++写的
  3、新建用户,创建数据目录,修改属性,初始化MySQL
    [root@localhost mysql]# tree -L 1 -d
    ├── bin #可执行文件目录
    ├── docs
    ├── include
    ├── lib
    ├── man
    ├── share
    └── support-files
    [root@localhost mysql]# mkdir data
    #support-files中的mysql.server,datadir=/usr/local/mysql/data ,所以才默认安装到/usr/local
    [root@localhost mysql]# groupadd mysql   #添加用户组mysql
    [root@localhost mysql]# useradd mysql -g mysql    #添加用户mysql 
    [root@localhost local]# cd mysql
    [root@localhost mysql]# chown -R mysql:mysql data #增加mysql用户,修改属性
    [root@localhost mysql]# bin/mysqld --initialize --user=mysql --datadir /usr/local/mysql/data/
    #数据库初始化,指定数据目录位置 9zyH:/491o5Z
    2019-10-12T02:14:19.114262Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: R=lxprgpD0oj #临时密码,登录之后会让你修改密码
    2019-10-12T02:14:20.505592Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed #初始化已经完成
    #如果报错显示让你安装一个libaio包,yum一个就OK
    #初始化数据库,指定用户和数据目录,返回一个临时密码,如果忘记初识密码,重新初始化,报错是因为你没有删除data目录里下的文件,初始化后data目录会从空目录增加很多目录
  4、启动数据库
    [root@localhost data]# cp ../support-files/mysql.server /etc/init.d/
    [root@localhost data]# vim /etc/my.cnf
    #系统默认数据库文件,marDB,我们不需要,删除就可以,否则就会报错
    [root@localhost data]# /etc/init.d/mysql.server start #卧槽,居然真的报错
    Starting MySQL.2019-10-12T02:24:24.836889Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
    ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
    [root@localhost data]# cp /etc/my.cnf{,.bak} #习惯性的备份一下,说不定以后会用到
    [root@localhost data]# rm -fr /etc/my.cnf
    [root@localhost data]# /etc/init.d/mysql.server start #重新启动,成功!!!
    Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.. SUCCESS!
  5、查看端口和进程,添加环境变量
    [root@localhost data]# ps -ef |grep mysql
    [root@localhost data]# netstat -lnatup|grep mysqld #端口查看一下 3306和33060  ,33060mysqlx的一个服务
    tcp6 0 0 :::33060 :::* LISTEN 1808/mysqld
    tcp6 0 0 :::3306 :::* LISTEN 1808/mysqld   
    [root@localhost bin]# cd
    [root@localhost ~]# vi .bash_profile
    PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
    #把命令路径加入到PATH 。如果命令位置变了,重新添加,基础的基础
    [root@localhost ~]# source .bash_profile #修改之后加载一下
  6、测试,重置密码,显示数据库
    5.7 修改密码:set password=password('mysql');
    8.0修改密码:alter user user() identified by 'mysql';
    [root@localhost ~]# mysqladmin -uroot -p password #命令交互式修改管理员密码
    Enter password:
    New password:
    Confirm new password:
    Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
    [root@localhost ~]# mysql -u root -p
    Enter password: #把初始化的那个密码写到这里就OK
    mysql> show databases;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. #报错提示让你修改密码
    mysql> alter user user() identified by 'mysql';   #突然觉得英语学得好的人,学SQL肯定快,因为SQL语句就是用英语的几个
    Query OK, 0 rows affected (0.11 sec) #修改密码成功
    mysql> show databases; #用一下,试一试
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | performance_schema |
    | sys |
    #修改配 置文件之前先把数据库关了
    systemctl start/stop/restart/status mysqld
  7、本地管理员用户密码忘记
  版本8重置密码流程:在配置文件中添加免密码登录,登录系统,修改系统库中user表的密码数据,
  删除配置文件的密码登录,重启服务,登录即可
  实践
  在【mysqld】模块添加:skip-grant-tables
  或者/etc/init.d/mysql.server start --skip-grant-tables
  #我感觉意思就是说启动的时候跳过权限这个表,就实现无密码登录了
    mysql>mysql -u root -p #直接回车就可以进入数据库
    mysql>use mysql
    mysql> update user set authentication_string ='' where user ='root';
  最后删除免密码登录就OK
mysql 常用参数:
  -u 用户
-p 密码
-h IP
-P 端口
-S socket文件
-e 免交互执行命令
< 导入SQL脚本
非常规安装
  1、将数据文件位置转移,添加/etc/my.cnf的模块
  修改数据目录到其他目录,先把原来的/usr/local/mysql/data 整个目录移动到 /data ,最在/etc/my.cnf 中添加一个模块
  [mysqld]
  datadir=/data/mysql/data
  [root@localhost init.d]# /etc/init.d/mysql.server start
  Starting MySQL.. SUCCESS!
  [root@localhost mysql]# ls #把原来的data目录搬到了外面/data
  bin docs include lib LICENSE LICENSE.router man README README.router share support-files
  也可以把整个mysql目录搬到其他地方,最后只需要在/etc/my.cnf中宣告basedir=/data/mysql/
  另外也可以在初始化的时候指定这两个目录的位置,就不用搬来搬去了,
  环境变量也需要添加
2、MySQL多实例
  配置文件复制一份,添加一个新的端口3307
  连接方式不同,需要指定sock文件 -S /tmp/mysql3307.sock
  拷贝之后修改文件所属者和所属组
  mysql> show variables like '%sock%';
  +-----------------------------------------+------------------+
  | Variable_name | Value |
  +-----------------------------------------+------------------+
  | mysqlx_socket | /tmp/mysqlx.sock |
  | performance_schema_max_socket_classes | 10 |
  | performance_schema_max_socket_instances | -1 |
  | socket | /tmp/mysql.sock |
  +-----------------------------------------+------------------+
  [root@localhost mysql2]# cat /etc/my3307.cnf
  [mysqld]
  basedir=/data/mysql2
  datadir=/data/mysql2/data
  port=3307
  socket=/tmp/mysql3307.sock
  mysqlx_port=33070
  mysqlx_socket=/tmp/mysqlx33070.sock
  [root@localhost mysql2]# bin/mysqld --defaults-file=/etc/my3307.cnf --user=mysql & #后台启动该实例进程
  2019-10-12T06:23:49.364951Z 0 [System] [MY-010116] [Server] /data/mysql2/bin/mysqld (mysqld 8.0.13) starting as process 16877
  2019-10-12T06:23:50.692041Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx33070.sock' bind-address: '::' port: 33070
3、查看端口和临时文件夹
  [root@localhost ~]# netstat -lntup |grep mysql
  tcp6 0 0 :::3307 :::* LISTEN 16877/bin/mysqld
  tcp6 0 0 :::33070 :::* LISTEN    16877/bin/mysqld
  tcp6 0 0 :::33060 :::* LISTEN 16821/mysqld
  tcp6 0 0 :::3306 :::* LISTEN 16821/mysqld
  [root@localhost ~]# ls /tmp/
  ks-script-TlWukQ mysqlx.sock
  mysql3307.sock mysqlx.sock.lock
  mysql3307.sock.lock mysql.sock mysql.sock.lock
  mysqlx33070.sock mysqlx33070.sock.lock
4、指定socket文件启动mysql实例
  [root@localhost ~]# mysql -u root -S /tmp/mysql3307.sock -p
  Enter password:
5、测试,添加数据库,查看3307实例的data目录
  mysql> create database course;#创建数据库course
  Query OK, 1 row affected (0.03 sec)
  mysql> show databases; #另一个数据库对比,说明实例添加成功
  [root@localhost ~]# ll /data/mysql2/data/ -t
  #新建的数据库在该进程的数据目录下会有一个新的目录
  drwxr-x---. 2 mysql mysql 6 Oct 12 14:29 course
6、错误日志,数据文件目录
  mysql> show variables like '%log_error%';
  [root@localhost ~]# tail -1 /data/mysql/data/localhost.localdomain.err
  2019-10-12T06:16:59.715604Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::' port: 33060
可以修改错误日志文件目录位置在/etc/my.cnf
  log_error=/data/mysql/data/abc.log
7、指定允许的连接 地址
  bind-address(默认是*)
  *代表接受所有来自IPV4、 IPV6主机网卡的TCP/IP连接
  0.0.0.0代表接受所有来自IPV4主机网卡的TCP/IP的连接
  指定的IP如127.0.0.1,代表只接受此地址请求的TCP/IP连接,只接受本地
8、参数
  default-storage-engine(默认是InnoDB):指定MySQL的默认存储引擎
  default- time -zone:指定默认时区,如果没有指定则和系统默认时区一致
9、关闭防火墙
  [root@localhost mysql]# systemctl stop firewalld
  [root@localhost mysql]# systemctl status firewalld
  Active: inactive (dead) since Sun 2019-10-13 15:13:52 CST; 7s ago

集群架构03·MySQL初识,mysql8.0环境安装,mysql多实例的更多相关文章

  1. MySQL服务器的安装和配置,MySQL Workbench 8.0.12安装,MySQL的基本使用

    一 MySQL服务器的安装和配置 二 MySQL Workbench 8.0.12安装 三 MySQL的基本使用 一MySQL服务器的安装和配置 MySQL是目前最为流行的开放源码的数据库,是完全网络 ...

  2. linux云计算集群架构学习笔记:workstation 12.0 按装Red Hat Enterprise Linux 7(64位)

    安装RHEL7.2 步骤: 1.安装虚拟机,按以下截图安装即可  步骤2: Ret hat 7.2 操作系统安装 rhel7因为许可报错解决

  3. MySQL集群架构:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken

    MHA简介 MHA可以自动化实现主服务器故障转移,这样就可以快速将从服务器晋级为主服务器(通常在10-30s),而不影响复制的一致性,不需要花钱买更多的新服务器,不会有性能损耗,容易安装,不必更改现有 ...

  4. 【MySQL大系】《Mysql集群架构》

    原文地址(微信):[技术文章]<Mysql集群架构> 本文地址:http://www.cnblogs.com/aiweixiao/p/7258444.html 点击关注微信公众号 1.主要 ...

  5. 构建MHA实现MySQL高可用集群架构

    一.MHA简介 MHA(Master HighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开 ...

  6. Mysql MHA高可用集群架构

    ** 记得之前发过一篇文章,名字叫<浅析MySQL高可用架构>,之后一直有很多小伙伴在公众号后台或其它渠道问我,何时有相关的深入配置管理文章出来,因此,民工哥,也将对前面的各类架构逐一进行 ...

  7. Galera Cluster——一种新型的高一致性MySQL集群架构

    原文链接:https://www.sohu.com/a/147032902_505779,最近被分配定位mysql的问题,学习下. 1. 何谓Galera Cluster 何谓Galera Clust ...

  8. 二、ELKStack集群架构设计

    一.ELKStack介绍与入门实践 二.Elasticsearch 集群架构图 服务器配置:Centos6.6 x86_64 CPU:1核心 MEM:2G (做实验,配置比较低一些) 注:这里配置el ...

  9. linux集群架构

    Linux集群架构   根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heart ...

随机推荐

  1. a标签中的javascript:void(0)和#的区别

    #包含了一个位置信息 默认的锚是#top 也就是网页的上端 而javascript:void(0)   仅仅表示一个死链接 void(0)用于执行某些处理,但是不整体刷新页面 javascript:v ...

  2. android studio调试报错:java.lang.RuntimeException: Unable to start activity ComponentInfo

    报错信息: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pro_u_loc/com.e ...

  3. Treasure Exploration POJ - 2594 【有向图路径可相交的最小路径覆盖】模板题

    Have you ever read any book about treasure exploration? Have you ever see any film about treasure ex ...

  4. jQuery.proxy(function,context)

    jQuery.proxy(function,context) 概述 jQuery 1.4 新增.返回一个新函数,并且这个函数始终保持了特定的作用域.大理石平台检定规程 当有事件处理函数要附加到元素上, ...

  5. UVA1674 闪电的能量 树剖

    UVA1674 闪电的能量 树剖 题面 水.树剖模板 #include <cstdio> #include <cstring> #include <algorithm&g ...

  6. APIO2009 抢掠计划 Tarjan DAG-DP

    APIO2009 抢掠计划 Tarjan spfa/DAG-DP 题面 一道\(Tarjan\)缩点水题.因为可以反复经过节点,所以把一个联通快中的所有路口看做一个整体,缩点后直接跑\(spfa\)或 ...

  7. 关于slf4j log4j log4j2的jar包配合使用的那些事

    由于java日志框架众多(common-logging,log4j,slf4j,logback等),引入jar包的时候,就要为其添加对应的日志实现.. 不同的jar包,可能用了不同的日志框架,那引用了 ...

  8. centos7初始化脚本(转)

    #!/bin/bash # 描述: CentOS 初始化脚本 # 加载配置文件 if [ -n "${1}" ];then /bin/} fi # 可接受配置(shell 变量格式 ...

  9. lodop第三方插件的使用

    原文链接 使用pdf.js插件与LODOP控件实现前端浏览器静默打印PDF文件 lodop官网地址:http://www.lodop.net/download.html lodop他人总结教程:htt ...

  10. Spark(二)CentOS7.5之Spark2.3.1HA安装

    一 下载安装包 1 官方下载 官方下载地址:http://spark.apache.org/downloads.html 2  安装前提 Java8  安装成功 zookeeper  安装成功 had ...