• Linux 安装 MySQL / MySQL 主从备份


    !! 假定所有安装包均在 /share目录,安装目录为 /opt !!

    $ ll /share
    -rw-r--r-- 1 root root  129041873 Nov 29 21:06 mysql-5.1.54-linux-i686-glibc23.tar.gz

    ==============================================================
    ========================= 安装 MySQL =========================
    ==============================================================

    0、卸载自带 MSQL

    rpm -qa | grep mysql
    mysql-5.0.77-4.el5_4.2
    rpm -e mysql-5.0.77-4.el5_4.2 dovecot-1.0.7-7.el5.i386

    1、解压文件

    $ groupadd mysql
    $ useradd -g mysql mysql
    $ cd /share
    $ tar zxf mysql-5.1.54-linux-i686-glibc23.tar.gz
    $ mv mysql-5.1.54-linux-i686-glibc23 /opt
    $ cd /opt
    $ ln -s mysql-5.1.54-linux-i686-glibc23 mysql
    $ chown -R mysql.mysql mysql-5.1.54-linux-i686-glibc23
    $ cp mysql/support-files/my-large.cnf mysql/my.cnf
    $ cp mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

    2、修改配置

    $ vi /opt/mysql/my.cnf (参考下面配置)

    [client]
    default-character-set=utf8
    [mysqld]
    basedir= /opt/mysql
    #skip-locking
    skip-external-locking
    character-set-server=utf8
    default-storage-engine=INNODB
    max_connections=500

    $ vi /etc/rc.d/init.d/mysql (参考下面配置)

    basedir=/opt/mysql
    datadir=$basdir/data

    3、创建数据库

    $ cd /opt/mysql
    $ ./scripts/mysql_install_db --user=mysql

    4、创建 mysql 服务

    $ chkconfig --add mysql
    $ chkconfig --level 23456 mysql on

    5、初始化数据库

    $ service mysql start
    $ cd /opt/mysql
    $ ./bin/mysql_secure_installation

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

    下载 service 脚本:services/mysql

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

    ==============================================================
    ========================= MySQL 主从备份 =========================
    ==============================================================

    主机 IP: 192.168.1.101 (db-server-1)
    从机 IP: 192.168.1.110 (db-server-2)
    ----------------------------------------------------------
    需要备份的数据库: db1、db2
    ----------------------------------------------------------
    !!! 假设 MySQL 默认 RPM 安装 !!!
        配置文件: /etc/my.cnf
        安装目录: /usr/
        数据库目录: /var/lib/mysql/
        启动开关: service mysql {start|stop|status|restart|condrestart|try-restart|reload|force-reload}

    ----------------------------------------------------------
    准备工作: 主机和从机个开启两个终端:
        A、主1终端、从1终端运行 mysql
            $ /usr/bin/mysql -uroot -p
                Enter password:
        B、主2终端、从2终端执行 shell 命令
            (首先打开 mysql 日志)
            (主2终端) $ tail -f /var/lib/mysql/db-server-1.err &
            (从2终端) $ tail -f /var/lib/mysql/db-server-2.err &
    ----------------------------------------------------------

    1、(主2终端) 编辑主机 MSQL 配置文件

    $ vi /etc/my.cnf
      [mysqld]
    server-id = 1
    log-bin = mysql-bin
    binlog_format = mixed
    binlog-do-db = db1
    binlog-do-db = db2
    binlog-ignore-db = test
    binlog-ignore-db = mysql
    binlog-ignore-db = information_schema
    $ service mysql restart

    2、(主1终端) 主机 MySQL 建立备份用户 (backup / mypass)

    msyql> GRANT FILE, REPLICATION SLAVE, REPLICATION CLIENT, SUPER, RELOAD ON *.* TO backup@'192.168.1.110'IDENTIFIED by 'mypass';
    Query OK, 0 rows affected (0.09 sec)

    (完成后可以在从机上做链接测试 [ 从2终端上输入命令: /usr/bin/mysql -h192.168.1.101 -ubackup -p ],如果不能连通请检查主机防火墙或主机 MySQL 端口)

    3、(主1终端) 锁定主机数据库表

    msyql> FLUSH TABLES WITH READ LOCK;
    Query OK, 0 rows affected (0.13 sec)

    4、(主1终端) 查看主机 Master 状态

    mysql> SHOW MASTER STATUS;
    +------------------+----------+--------------+------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000033 | 458 | | |
    +------------------+----------+--------------+------------------+
    1 row in set (0.01 sec)

    5、(主2终端) 备份主机数据库

    $ cd /var/lib/mysql
    $ tar zcvf db_backup.tar ibdata* ib_logfile* db1/ db2/
    $ mv db_backup.tar /tmp

    6、(从2终端) 从机导入主机数据库

    $ service mysql stop
    $ cd /var/lib/mysql
    $ rm -f ibdata* ib_logfile* mysql-bin.* master.info relay-log.info db1/ db2/
    $ scp 192.168.1.101:/tmp/db_backup.tar .
    $ tar zxvf db_backup.tar
    $ chown -R mysql.mysql ibdata* ib_logfile* db1/ db2/
    $ rm -f db_backup.tar
    ######################## 步骤 5/6 的另一种方法 (相对较慢) ########################
    #
    5、(主2终端) 备份主机数据库
    #
    ------------------------------
    #
    $ cd /tmp
    #
    $ /usr/bin/mysqldump -uroot -pmypass --default-character-set=utf8 --opt --extended-insert=false --triggers --routines --hex-blob -x -q db1 > db1.sql
    #
    $ /usr/bin/mysqldump -uroot -pmypass --default-character-set=utf8 --opt --extended-insert=false --triggers --routines --hex-blob -x -q db2 > db2.sql
    #
    $ tar zcvf db_backup.tar db1.sql db2.sql

    # 6、(从2终端) 导入主机数据库
    #
    ------------------------------
    #
    $ cd /tmp
    #
    $ scp 192.168.1.101:/tmp/db_backup.tar .
    #
    $ tar zxvf db.tar
    #
    $ /usr/bin/mysql -uroot -p
    #
    Enter password:
    #
    mysql> create database db1;
    #
    mysql> use db1;
    #
    mysql> source /tmp/db1.sql;
    #
    mysql> create database db2;
    #
    mysql> use db2;
    #
    mysql> source /tmp/db2.sql;
    #
    mysql> exit;
    #
    $ rm -f db.tar db1.sql db2.sql
    #
    #################################################################################


    7、(从2终端) 编辑从机 MySQL 配置文件

    $ vi /etc/my.cnf

    [mysqld]
    server-id = 2
    log-bin=mysql-bin
    binlog_format=mixed
    replicate-do-db = db1
    replicate-do-db = db2
    replicate-ignore-db = test
    replicate-ignore-db = mysql
    replicate-ignore-db = information_schema
    relay-log = db-server-2-relay-bin
    log-slave-updates
    $ service mysql start

    8、(从1终端) 设置备份点

    mysql> slave stop;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.101', MASTER_PORT='3306', MASTER_USER='backup', MASTER_PASSWORD='mypass', MASTER_LOG_FILE='mysql-bin.000033', MASTER_LOG_POS=458;
    Query OK, 0 rows affected (0.02 sec)
    mysql> slave start;
    Query OK, 0 rows affected (0.02 sec)

    9、解锁主机数据库表

    msyql> UNLOCK TABLES;
    Query OK, 0 rows affected (0.00 sec)

    10、其他工作

        (删除主从机器的临时文件: db_backup.tar)

    ==============================================================
    =================== 配置 MySQL 互为主从备份 ==================
    ==============================================================

     (假设已根据上面的步骤配置好 MySQL 主从备份)


    1、(从2终端) 编辑从机 MSQL 配置文件

    $ vi /etc/my.cnf
    [mysqld]
    # 加入下面配置
    binlog-do-db = db1
    binlog-do-db = db2
    binlog-ignore-db = test
    binlog-ignore-db = mysql
    binlog-ignore-db = information_schema
    $ service mysql restart

    2、(从1终端) 从机 MySQL 建立备份用户 (backup / mypass)

    msyql> GRANT FILE, REPLICATION SLAVE, REPLICATION CLIENT, SUPER, RELOAD ON *.* TO backup@'192.168.1.101'IDENTIFIED by 'mypass';
    Query OK, 0 rows affected (0.09 sec)

    (完成后可以在主机上做链接测试 [ 主2终端上输入命令: /usr/bin/mysql -h192.168.1.110 -ubackup -p ],如果不能连通请检查主机防火墙或主机 MySQL 端口)

    3、(主2终端) 编辑主机 MySQL 配置文件

    $ vi /etc/my.cnf

    [mysqld]
    # 加入下面配置
    replicate-do-db = db1
    replicate-do-db = db2
    replicate-ignore-db = test
    replicate-ignore-db = mysql
    replicate-ignore-db = information_schema
    relay-log = db-server-1-relay-bin
    log-slave-updates
    $ service mysql start

    4、(主1终端) 设置备份点

    mysql> slave stop;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.101', MASTER_PORT=3306, MASTER_USER='backup', MASTER_PASSWORD='mypass';
    Query OK, 0 rows affected (0.02 sec)
    mysql> slave start;
    Query OK, 0 rows affected (0.02 sec)






    CodeProject

  • 相关阅读:
    在java中使用ffmpeg将amr格式的语音转为mp3格式
    keras实现不同形态的模型
    TF版本的Word2Vec和余弦相似度的计算
    TensorFlow中的两种conv2d方法和kernel_initializer
    CNN中的padding
    记一次sqoop同步到mysql
    理解HDFS
    TensorFlow中的优化算法
    使用TensorFlow实现分类
    使用TensorFlow实现回归预测
  • 原文地址:https://www.cnblogs.com/ldcsaa/p/2350751.html
Copyright © 2020-2023  润新知