多线程主线程(多线程主机用途)

lxf2023-07-30 04:40:01

新mysql构建多线程主从复制








一:首先得到
mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar

tar xf mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar
yum install -y mysql-community-client-5.7.11-1.el6.x86_64.rpm mysql-community-common-5.7.11-1.el6.x86_64.rpm mysql-community-libs-5.7.11- 1.el6.x86_64.rpm mysql-community-libs-compat-5.7.11-1.el6.x86_64.rpm mysql-community-server-5.7.11-1.el6.x86_64.rpm

启动:
/etc/init.d/mysqld start
[root@vm10 mnt]# /etc/init.d/mysqld start
Initializing MySQL database: [ OK ]
Installing validate password plugin: [ OK ]
Starting mysqld: [ OK ]

获得初始密码:
grep 'temporary password' /var/log/mysqld.log
mysql -p 回车之后输入初始密码

改密码:
ALTER USER root@localhost identified by 'Redhat007!'
密码规则:必须大于八位 ,有大写,小写,数字,特殊字符

然后在里面创建数据库 xp1 后面测试要用
mysql> create database xp1;
然后我在 /mnt底下创建了add.sql (方便后面使用)代码如下:

  • 创建表usertb (
  • id序列号,
  • uname varchar(20岁),
  • ucreatetime日期时间,
  • 年龄限制(11岁)
  • )
  • ENGINE=MYISAM
  • 默认字符集= utf8 COLLATE = utf8 _ general _ ci
  • AUTO_INCREMENT=1
  • ROW _ FORMAT = COMPACT

  • 分隔符$$
  • 设置自动提交= 0$$

  • 创建过程test1()
  • 开始
  • 声明v_cnt decimal (10)默认为0;
  • dd:loop
  • 插入usertb值
  • (空,'用户1 ',' 2010-01-01 00: 00 ',20),
  • (空,'用户2 ',' 2010-01-01 00: 00 ',20),
  • (空,'用户3 ',' 2010-01-01 00: 00 ',20),
  • (空,'用户4 ',' 2010-01-01 00: 00 ',20),
  • (空,'用户5 ',' 2011-01-01 00: 00 ',20),
  • (空,'用户6 ',' 2011-01-01 00: 00 ',20),
  • (空,'用户7 ',' 2011-01-01 00: 00 ',20),
  • (空,'用户8 ',' 2012-01-01 00: 00 ',20),
  • (空,'用户9 ',' 2012-01-01 00: 00 ',20),
  • (空,'用户0 ',' 2012-01-01 00: 00 ',20)

  • 提交;
  • 设置v _ CNT = v _ CNT+10;
  • 如果v_cnt = 10000000,则离开DD;
  • 结束if;
  • 结束循环DD;
  • 结束;$$

  • 分隔符;
  • 然后在新创建的那个数据库中执行那段代码

    触发代码中的存储过程
    call test1 会在usertb 表中插入一千万行数据
    如下证明数据已经插入

    修改代码,在向其中创建表usertb1 ,然后继续触发,往里面写入一千万行数据
    (创建两个表主要想让mysqldump和mysqlpump的差别更明显)
    如下证明创建成功


    测试mysqldump 和mysqlpump
    mysqldump:

    mysqlpump:
    time mysqlpump -p xp1 > xp1.sql

    如上,明显快了十秒,这还使用的是mysqlpump的默认线程数 2
    time mysqlpump -pRedhat006! --default-parallelism=4 db1 > db1.sql
    --default-parallelism=4 使用线程数 可以自己修改

    做个mysql的A -- B复制
    配置环境: master: 172.25.254.10
    slave: 172.25.254.11
    首先在master主机里
    vim /etc/my.cnf
    server-id=1
    log-bin=mysql-bin
    binlog-do-db=test
    /etc/init.d/mysqld restart
    mysql -pRedhat007!
    用如下命令查看一下,看是否成功

    新建test库: create database test;

    授权:
    mysql> grant replication slave on *.* to xpp@'172.25.254.11' identified by 'Redhat007!';
    Query OK, 0 rows affected, 1 warning (0.40 sec)
    /etc/init.d/mysqld restart

    slave端: 172.25.254.11
    vim /etc/my.cnf
    server-id=2 与master不同即可
    然后再slave上面安装最新版的mysql
    首先验证master是否授权成功
    mysql -pRedhat007! -uxpp -h172.25.254.10 如果可以登录进去的话就证明成功

    mysql -pRedhat007!
    新建test库,因为在做同步之前两个数据库中的内容必须一致
    然后:chang master to master_host='172.25.254.10', master_user='xpp' , master_password='Redhat007!', master_log_file='mysql-bin.000001', master_log_pos=154;

    /etc/init.d/mysqld restart

    在master端:
    MySQL 的新特性之一,是加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力
    vim /etc/my.cnf 加如下两行,开启gtid模式

    gtid-mode=on
    enforce-gtid-consistency=on

    /etc/init.d/mysqld restart

    然后再slave上
    vim /etc/my.cnf 加如下
    gtid-mode=on
    enforce-gtid-consistency=on
    slave-parallel-type=LOGICAL_CLOCK
    slave-parallel-workers=16
    master_info_repository=TABLE
    relay_log_info_repository=TABLE
    relay_log_recovery=ON

    /etc/init.d/mysqld restart




















    http://www . bkjia . com/PHPjc/1114327 . html www . bkjia . com true http://www . bkjia . com/PHPjc/1114327 . htmltecharticle新mysql构建多线程主从复制1:首先获取MySQL-5 . 7 . 11-1 . el6 . x86 _ 64 . rpm-bundle . tartartartaxf MySQL-5 . 7 . 11-1 . El...

    adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!