MYSQL 实时升级

(MYSQL 升级实验内容)

步骤如下:
准备一台新的服务器,安装mysql5.7 ,再把v5.7 mysql 添加到以v5.6 mysql 为主节点的主从架构集群中。
再进行主从切换。设置成mysql5.7 为主节点,这样就完成了MYSQL 的升级。

1、mysql 5.7.17 安装

2、配置成主从架构

3、主从节点切换

----------------------------------------------------------------------------------------------

1.1.建立安装目录:

[root@mdw ~]# mkdir /opt/mysql/data /opt/mysql/log
    [root@mdw ~]# chown mysql:mysql /opt/mysql/data /opt/mysql/log
    [root@mdw ~]# ll /opt/mysql
    total 8
    drwxr-xr-x 2 mysql mysql 4096 Feb 23 18:34 data
    drwxr-xr-x 2 mysql mysql 4096 Feb 23 18:34 log

1.2.下载

安装支持库
        yum install gcc gcc-c++ -y
        yum install -y ncurses-devel.x86_64
        yum install -y cmake.x86_64
        yum install -y libaio.x86_64
        yum install -y bison.x86_64
        yum install -y gcc-c++.x86_64

下载mysql 5.7

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
    tar zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
    cd mysql-5.7.17-linux-glibc2.5-x86_64

bin/mysqld --initialize --user=mysql --basedir=basedir=/opt/mysql/mysql5.7.17 --datadir=/opt/mysql/data

vi /opt/mysql/mysql5.7.17/support-files/my-default.cnf
     basedir = /opt/mysql/mysql5.7.17
     datadir = /opt/mysql/data
     port = 3310
     server_id = 201710
     socket = /tmp/mysql3310.sock

[root@sdw2 mysql5.7.17]# bin/mysqld --initialize --user=mysql --basedir=basedir=/opt/mysql/mysql5.7.17 --datadir=/opt/mysql/data
    2017-02-24T08:32:50.780034Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2017-02-24T08:32:50.796889Z 0 [ERROR] Can't find error-message file 'basedir=/opt/mysql/mysql5.7.17/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
    2017-02-24T08:32:52.153749Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2017-02-24T08:32:52.463255Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2017-02-24T08:32:52.558447Z 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: d521c809-fa6b-11e6-9a40-000c291f5cce.
    2017-02-24T08:32:52.567667Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2017-02-24T08:32:52.568642Z 1 [Note] A temporary password is generated for root@localhost: 8qdO.tWgl,eJ
    [root@sdw2 mysql5.7.17]#

#修改 mysql.server,拷贝到系统目录中,后面可以使用mysql.server 来启动
    [root@sdw2 mysql5.7.17]# vi support-files/mysql.server
    [root@sdw2 mysql5.7.17]# cp support-files/mysql.server /etc/init.d/mysql
    [root@sdw2 mysql5.7.17]#

#启动实例
    [root@sdw2 mysql5.7.17]# bin/mysqld_safe --user=mysql &
    [1] 12880
    [root@sdw2 mysql5.7.17]# 2017-02-24T08:36:28.391236Z mysqld_safe Logging to '/opt/mysql/data/sdw2.err'.
    Logging to '/opt/mysql/data/sdw2.err'.
    2017-02-24T08:36:28.475157Z mysqld_safe Starting mysqld daemon with databases from /opt/mysql/data

[root@sdw2 mysql5.7.17]# ps -ef|grep mysqld
    root     12880 12581  0 00:36 pts/1    00:00:00 /bin/sh bin/mysqld_safe --user=mysql
    mysql    13039 12880  8 00:36 pts/1    00:00:01 ./bin/mysqld --basedir=/opt/mysql/mysql5.7.17 --datadir=/opt/mysql/data --plugin-dir=/opt/mysql/mysql5.7.17/lib/plugin --user=mysql --log-error=/opt/mysql/data/sdw2.err --pid-file=/opt/mysql/data/sdw2.pid --socket=/tmp/mysql3310.sock --port=3310
    root     13072 12581  0 00:36 pts/1    00:00:00 grep mysqld
    [root@sdw2 mysql5.7.17]#

修改密码    
    bin/mysqladmin -u root password "sa123" -S /tmp/mysql3310.sock

#登录验证
    [root@sdw2 ~]# /opt/mysql/mysql5.7.17/bin/mysql -uroot -p -S /tmp/mysql3310.sock
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 6
    Server version: 5.7.17 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>  show variables like 'server_id';
    +---------------+--------+
    | Variable_name | Value  |
    +---------------+--------+
    | server_id     | 201710 |
    +---------------+--------+
    1 row in set (0.05 sec)

mysql>

到此 5.7 版本MYSQL 安装完成

2.1    备份5.6 mysql,恢复数据到5.7mysql

2.1.1 建立备份用户

mysql> grant replication slave,replication client on *.* to 'repl'@'%' identified by 'repl123';
    Query OK, 0 rows affected (0.13 sec)

mysql>

2.2.2 备份数据

[root@mdw ~]# /usr/local/mysql/bin/mysqldump --single-transaction --master-data=2 -uroot -p  -S /tmp/mysql3306.sock  --all-databases > ~/bak20170224
    Enter password:

[root@mdw ~]# ll bak* -h
    -rw-r--r-- 1 root root 641K Feb 24 01:00 bak20170224
    [root@mdw ~]#

2.2.3 拷贝文件到v5.7mysql 服务器中

[root@mdw ~]# scp bak20170224 root@192.168.2.236:/root/bak201724
    root@192.168.2.236's password:
    bak20170224                                                                                                                                                100%  640KB 640.3KB/s   00:00    
    [root@mdw ~]#

2.2.4 恢复数据库

mysql>  show variables like 'server_id';
    +---------------+--------+
    | Variable_name | Value  |
    +---------------+--------+
    | server_id     | 201710 |
    +---------------+--------+
    1 row in set (0.05 sec)

mysql> source /root/bak20170224
    ERROR:
    Failed to open file '/root/bak20170224', error: 2
    mysql> source /root/bak201724
    Query OK, 0 rows affected (0.00 sec)
    ........
    Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | erp                |
    | jfedu              |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+
    7 rows in set (0.00 sec)

#看到数据库已复制过来了。

2.3 配置主节点

change master to master_host='192.168.2.220',
     master_port=3306,
     master_user='repl',
     master_password='repl123',
     master_log_file='mysql-bin.000002',
     master_log_pos=660824,
     master_connect_retry=30;

master_log_file 参数值可以从 备份文件中查找到(vim /root/bak20170222 )

2.3.1 启动从节点

start slave;

2.3.2 确认同步状态

mysql> show slave status\G;
        *************************** 1. row ***************************
                       Slave_IO_State: Waiting for master to send event
                          Master_Host: 192.168.2.220
                          Master_User: repl
                          Master_Port: 3306
                        Connect_Retry: 30
                      Master_Log_File: mysql-bin.000002
                  Read_Master_Log_Pos: 660824
                       Relay_Log_File: sdw2-relay-bin.000002
                        Relay_Log_Pos: 317
                Relay_Master_Log_File: mysql-bin.000002
                     Slave_IO_Running: Yes
                    Slave_SQL_Running: Yes
                      Replicate_Do_DB:
                  Replicate_Ignore_DB:
                   Replicate_Do_Table:
               Replicate_Ignore_Table:
              Replicate_Wild_Do_Table:
          Replicate_Wild_Ignore_Table:
                           Last_Errno: 0
                           Last_Error:
                         Skip_Counter: 0
                  Exec_Master_Log_Pos: 660824
                      Relay_Log_Space: 523
                      Until_Condition: None
                       Until_Log_File:
                        Until_Log_Pos: 0
                   Master_SSL_Allowed: No
                   Master_SSL_CA_File:
                   Master_SSL_CA_Path:
                      Master_SSL_Cert:
                    Master_SSL_Cipher:
                       Master_SSL_Key:
                Seconds_Behind_Master: 0
        Master_SSL_Verify_Server_Cert: No
                        Last_IO_Errno: 0
                        Last_IO_Error:
                       Last_SQL_Errno: 0
                       Last_SQL_Error:
          Replicate_Ignore_Server_Ids:
                     Master_Server_Id: 201701
                          Master_UUID: 746786d5-f7fb-11e6-a3e8-000c29601c12
                     Master_Info_File: /opt/mysql/data/master.info
                            SQL_Delay: 0
                  SQL_Remaining_Delay: NULL
              Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
                   Master_Retry_Count: 86400
                          Master_Bind:
              Last_IO_Error_Timestamp:
             Last_SQL_Error_Timestamp:
                       Master_SSL_Crl:
                   Master_SSL_Crlpath:
                   Retrieved_Gtid_Set:
                    Executed_Gtid_Set:
                        Auto_Position: 0
                 Replicate_Rewrite_DB:
                         Channel_Name:
                   Master_TLS_Version:
        1 row in set (0.00 sec)

ERROR:
        No query specified

2.3.3 验证主从架构是否正常

mysql> status slave;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'status slave' at line 1
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.2.220
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 30
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 660824
               Relay_Log_File: sdw2-relay-bin.000002
                Relay_Log_Pos: 317
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 660824
              Relay_Log_Space: 523
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 201701
                  Master_UUID: 746786d5-f7fb-11e6-a3e8-000c29601c12
             Master_Info_File: /opt/mysql/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
1 row in set (0.00 sec)

ERROR:
No query specified

2.3.4 主节点插入数据

mysql> use erp;
        Reading table information for completion of table and column names
        You can turn off this feature to get a quicker startup with -A

Database changed
        mysql> show tables;
        +---------------+
        | Tables_in_erp |
        +---------------+
        | test1         |
        +---------------+
        1 row in set (0.00 sec)

mysql> select * from test1;
        +------+---------------+
        | id   | name          |
        +------+---------------+
        |    1 | test1         |
        |    2 | test2         |
        |    3 | test 3 update |
        |    3 | test 3 update |
        |    3 | test 3 update |
        +------+---------------+
        5 rows in set (0.00 sec)

mysql> insert into test1 values(4,'test 4 end');
        Query OK, 1 row affected (0.17 sec)

mysql> system ifconfig;
        eth0      Link encap:Ethernet  HWaddr 00:0C:29:60:1C:12  
                  inet addr:192.168.2.220  Bcast:192.168.2.255  Mask:255.255.255.0

2.3.5 从节点查询数据

mysql> show databases;
        +--------------------+
        | Database           |
        +--------------------+
        | information_schema |
        | erp                |
        | jfedu              |
        | mysql              |
        | performance_schema |
        | sys                |
        | test               |
        +--------------------+
        7 rows in set (0.00 sec)

mysql> use erp;
        Reading table information for completion of table and column names
        You can turn off this feature to get a quicker startup with -A

Database changed
        mysql> select * from test1;
        +------+---------------+
        | id   | name          |
        +------+---------------+
        |    1 | test1         |
        |    2 | test2         |
        |    3 | test 3 update |
        |    3 | test 3 update |
        |    3 | test 3 update |
        +------+---------------+
        5 rows in set (0.00 sec)

mysql> select * from test1;
        +------+---------------+
        | id   | name          |
        +------+---------------+
        |    1 | test1         |
        |    2 | test2         |
        |    3 | test 3 update |
        |    3 | test 3 update |
        |    3 | test 3 update |
        |    4 | test 4 end    |
        +------+---------------+
        6 rows in set (0.00 sec)

mysql> system ifconfig
        eth1      Link encap:Ethernet  HWaddr 00:0C:29:1F:5C:CE  
                  inet addr:192.168.2.236  Bcast:192.168.2.255  Mask:255.255.255.0
                  inet6 addr: fe80::20c:29ff:fe1f:5cce/64 Scope:Link
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

3.主从切换

3.1 设置主节点为只读

mysql> show variables like 'read_only';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | read_only     | OFF   |
    +---------------+-------+
    1 row in set (0.00 sec)

mysql> set global read_only=on;
    Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'read_only';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | read_only     | ON    |
    +---------------+-------+
    1 row in set (0.00 sec)

mysql>

3.2 应用连接到从节点

只要应用连接数据库的字串,修改为: 3310 这个实例即可

到此mysql 升级已完成

MYSQL 实时升级相关推荐

  1. clickhouse 同步mysql_ClickHouse和他的朋友们(11)MySQL实时复制之GTID模式

    原文出自:https://bohutang.me/2020/08/26/clickhouse-and-friends-mysql-gtid-replication/ 最后更新: 2020-09-03 ...

  2. clickhouse 同步mysql_ClickHouse和他的朋友们(9)MySQL实时复制与实现

    很多人看到标题还以为自己走错了夜场,其实没有. ClickHouse 可以挂载为 MySQL 的一个从库 ,先全量再增量的实时同步 MySQL 数据,这个功能可以说是今年最亮眼.最刚需的功能,基于它我 ...

  3. mysql二进制升级_MySQL二进制安装,升级,多实例部署

    MySQL二进制安装,升级,多实例部署 目标 理解线上部署考虑的因素 学会编译安装以及二进制安装mysql 学会升级mysql 学会多实例部署mysql数据库 学会合理部署mysql线上库 考虑因素: ...

  4. swool tcp mysql_Swoole WebSocket 实现mysql实时数据展示

    最近在学习swoole,自己完成下论坛里留下的作业,通过swoole_websocket实时展示mysql数据,有个遗留问题,如何判断mysql是否有增删改,我想到的方法有: 1.在应用层中有增删改时 ...

  5. Flume+Kafka+Spark Streaming+MySQL实时日志分析

    文章目录 项目背景 案例需求 一.分析 1.日志分析 二.日志采集 第一步.代码编辑 2.启动采集代码 三.编写Spark Streaming的代码 第一步 创建工程 第二步 选择创建Scala工程 ...

  6. kafka对接mysql_【Canal】利用canal实现mysql实时增量备份并对接kafka

    简介 canal 1.1.1版本之后, 默认支持将canal server接收到的binlog数据直接投递到MQ, 目前默认支持的MQ系统有: kafka: https://github.com/ap ...

  7. MySQL在线升级方案

    记录一次因MySQL漏洞问题导致的生产数据库紧急迁移方案! 回顾 最开始部署的MySQL版本为5.7.21,因有部分漏洞因此需要紧急升级到MySQL 5.7.38版本.升级期间我们做了大概如下几个步骤 ...

  8. mysql实时监控工具mytop

    mysql实时监控工具mytop mytop类似于linux top工具,可以实时监控mysql服务器的性能信息. 安装依赖 yum install -y perl-CPAN# cpan # cpan ...

  9. Mysql实时统计订单数量_Spark实时统计订单量

    背景 用户下单数据会通过业务系统实时产生入库到mysql库,我们要统计通某个推广渠道实时下单量,以便线上运营推广人员查看不同渠道推广效果进而执行不同推广策略 系统架构 架构图 注:组件不了解的同学可参 ...

最新文章

  1. TF之DNN:利用DNN【784→500→10】对MNIST手写数字图片识别数据集(TF自带函数下载)预测(98%)+案例理解DNN过程
  2. bartender外部表不是预期格式_三张表轻松搞定项目计划
  3. MySQL配置日志服务器_mysql配置数据库日志
  4. SAP License:SAP关键用户职责
  5. input回车触发事件_JavaScript学习笔记(十五)—Event事件(上)
  6. tornado的views(templates)
  7. php json 存储数据格式,文件存储(一):通过 JSON 格式序列化文本数据
  8. 查看sql语句的执行计划
  9. 阿帕奇,StringUtil工具类,各种常用字符串的处理
  10. 二叉排序树,二叉平衡树,红黑树,B树,B+树的区别,作用,特性
  11. 淘宝新规:售假者严重违规须缴纳100%保证金
  12. xsmax进入dfu模式_如何在iPhone XR,iPhone XS和XS Max,iPhone X上进入恢复模式
  13. word如何让单页变横向
  14. 用scratch2.0编飞机大战
  15. 001《以幽默的方式过一生》 读书笔记
  16. Google I/O 2021:在重要时刻提供帮助
  17. word撰写格式系列2
  18. 信息学奥赛一本通——2062:【例1.3】电影票
  19. Android 点击屏幕空白处隐藏软键盘
  20. 随身的娱乐!PPC游戏模拟器详细介绍[转贴]

热门文章

  1. 【机器学习_4】机器学习算法分类
  2. ionic集成jPush极光推送
  3. Codeforces Beta Round #7 C. Line (扩展欧几里德)
  4. IOS 开发环境,证书和授权文件等详解
  5. TEAM WORK 認清自己的角色
  6. android listview源码--第一章RecycleBin
  7. 视图系统CBV 和 response
  8. 【uoj#139】[UER #4]被删除的黑白树 贪心
  9. Ubuntu中的launcher
  10. operator、explicit与implicit