1source include/have_ssl_communication.inc; 2source include/master-slave.inc; 3 4# We don't test all types of ssl auth params here since it's a bit hard 5# until problems with OpenSSL 0.9.7 are unresolved 6 7# creating replication user for whom ssl auth is required 8# preparing playground 9connection master; 10create user replssl@localhost; 11grant replication slave on *.* to replssl@localhost require ssl; 12create table t1 (t int); 13 14sync_slave_with_master; 15 16#trying to use this user without ssl 17stop slave; 18--source include/wait_for_slave_to_stop.inc 19change master to master_user='replssl',master_password=''; 20start slave; 21 22#showing that replication don't work 23connection master; 24insert into t1 values (1); 25#reasonable timeout for changes to propagate to slave 26let $wait_condition= SELECT COUNT(*) = 1 FROM t1; 27source include/wait_condition.inc; 28connection slave; 29select * from t1; 30 31#showing that replication could work with ssl params 32stop slave; 33--source include/wait_for_slave_to_stop.inc 34--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR 35eval change master to master_ssl=1 , master_ssl_ca ='$MYSQL_TEST_DIR/std_data/cacert.pem', master_ssl_cert='$MYSQL_TEST_DIR/std_data/client-cert.pem', master_ssl_key='$MYSQL_TEST_DIR/std_data/client-key.pem'; 36start slave; 37--source include/wait_for_slave_to_start.inc 38 39#avoiding unneeded sleeps 40connection master; 41sync_slave_with_master; 42 43#checking that replication is ok 44select * from t1; 45 46#checking show slave status 47let $status_items= Master_SSL_Allowed, Master_SSL_CA_Path, Master_SSL_CA_File, Master_SSL_Cert, Master_SSL_Key; 48source include/show_slave_status.inc; 49source include/check_slave_is_running.inc; 50 51#checking if replication works without ssl also performing clean up 52stop slave; 53--source include/wait_for_slave_to_stop.inc 54change master to master_user='root',master_password='', master_ssl=0; 55start slave; 56--source include/wait_for_slave_to_start.inc 57connection master; 58drop user replssl@localhost; 59drop table t1; 60 61sync_slave_with_master; 62source include/show_slave_status.inc; 63source include/check_slave_is_running.inc; 64# End of 4.1 tests 65 66# Start replication with ssl_verify_server_cert turned on 67connection slave; 68stop slave; 69--source include/wait_for_slave_to_stop.inc 70--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR 71eval change master to 72 master_host="localhost", 73 master_ssl=1 , 74 master_ssl_ca ='$MYSQL_TEST_DIR/std_data/cacert.pem', 75 master_ssl_cert='$MYSQL_TEST_DIR/std_data/client-cert.pem', 76 master_ssl_key='$MYSQL_TEST_DIR/std_data/client-key.pem', 77 master_ssl_verify_server_cert=1; 78start slave; 79--source include/wait_for_slave_to_start.inc 80 81connection master; 82create table t1 (t int); 83insert into t1 values (1); 84 85sync_slave_with_master; 86 87echo on slave; 88#checking that replication is ok 89select * from t1; 90 91#checking show slave status 92source include/show_slave_status.inc; 93--source include/check_slave_is_running.inc 94 95# ==== Clean up ==== 96 97connection master; 98drop table t1; 99sync_slave_with_master; 100--source include/stop_slave.inc 101CHANGE MASTER TO 102 master_host="127.0.0.1", 103 master_ssl_ca ='', 104 master_ssl_cert='', 105 master_ssl_key='', 106 master_ssl_verify_server_cert=0, 107 master_ssl=0; 108 109--let $rpl_only_running_threads= 1 110--source include/rpl_end.inc 111