zoukankan      html  css  js  c++  java
  • mysql 结合keepalived测试

     vip:192.168.32.66
     
    192.168.32.6   主库:
    
    mysql> show variables like '%read_only%';
    +------------------+-------+
    | Variable_name    | Value |
    +------------------+-------+
    | innodb_read_only | OFF   |
    | read_only        | OFF   |
    | tx_read_only     | OFF   |
    +------------------+-------+
    3 rows in set (0.00 sec)
    
    可读可写
    
    
    192.168.32.116 从库:
    
    mysql> show variables like '%read_only%';
    +------------------+-------+
    | Variable_name    | Value |
    +------------------+-------+
    | innodb_read_only | OFF   |
    | read_only        | ON    |
    | tx_read_only     | OFF   |
    +------------------+-------+
    3 rows in set (0.02 sec)
    
    只读
    
    测试账户:
    test:/root# mysql -uzjzc_app -p1234567
    
    
     
     
     
     从库:
    slave:/root# mysql -uzjzc_app -p'1234567'  --socket=/data01/mysql/mysql.sock
    Warning: Using a password on the command line interface can be insecure.
    
    
    mysql> use zjzc;
    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> create table test(id int);
    ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
    mysql> 
     
     
     mysql> insert into SystemRole(roleName,roleCode,status,createdTime) values('aaaa','aaa','1',now);
    ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
    mysql> 
    
    
    开始测试;
    
    
    /root/sbin# cat test.pl 
    use DBI;
    my $database='zjzc';  
    my $user="zjzc_app";  
    my $passwd="1234567"; 
    my @arr2=();  
    my $dbh  = DBI->connect("dbi:mysql:database=$database;host=192.168.32.66;port=3306",$user,$passwd,{  
                              RaiseError => 1,  
                              AutoCommit => 0
                               } ) or die "can't connect to database ". DBI-errstr;
    my $hostSql = qq{select  id,name from scan; }; 
    my ($a1, $a2, $a3,$a4,$a5,$a6,$a7,$a8,$a9);  
    my $selStmt = $dbh->prepare($hostSql);  
    $selStmt->execute();  
    $selStmt->bind_columns(undef, $a1, $a2);  
    $selStmt->execute();  
    while( $selStmt->fetch() ){ push (@arr2, "$a1  $a2  $a3
    " );
    };
    print "@arr2 is @arr2
    ";
    
    
    eval{  
    $dbh->do("insert into scan values(2,'cccddeqe')") ;  
    $dbh->commit();};  
    if( $@ ) {  
        print  "Database error: $DBI::errstr
    ";  
         $dbh->rollback(); #just die if rollback is failing   
              };  
            $dbh->disconnect;  
    slave:/root/sbin# perl test.pl 
    @arr2 is 1  aaabbb  
     2  cccddeqe  
     2  cccddeqe  
     2  cccddeqe  
     2  cccddeqe  
    
    此时连接到master上,可以读写
    
    
    重启master的keepalive,此时;
    
    slave:/root/sbin# perl test.pl 
    @arr2 is 1  xxxxyyyy  
    
    DBD::mysql::db do failed: The MySQL server is running with the --read-only option so it cannot execute this statement at test.pl line 22.
    Database error: The MySQL server is running with the --read-only option so it cannot execute this statement
    
    连接到从上,从是只读的,报错

  • 相关阅读:
    使用ArcMap将Excel转换成Shapefile文件
    vue(9)事件监听修饰符
    vue(8)事件监听v-on
    vue(7)computed属性的使用
    vue(6)v-bind指令
    vue(5)插值{{}}和一些简单指令v-pre v-once v-text
    C++ 插入迭代器insert iterator
    敏捷开发
    java-------2.interface接口类,实现接口
    java-------1.抽象类,抽象方法
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199581.html
Copyright © 2011-2022 走看看