Files
MaxScale/maxscale-system-test/mxs951_utfmb4.cpp
Markus Mäkelä af08647fa2 Add variadic ssh function to mariadb_nodes
The ssh_node function now supports printf style arguments. This is used to
simplify command execution on the nodes.

Curreltny, in addition to its old usage, it is used to drop extra
databases when replication is started.
2017-10-01 10:49:11 +03:00

67 lines
1.6 KiB
C++

/**
* @file mxs951_utfmb4_galera.cpp Set utf8mb4 in the backend and restart Maxscale
* - add following to backend server configuration:
@verbatim
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_520_ci
@endverbatim
* - for all backend nodes: SET GLOBAL character_set_server = 'utf8mb4'; SET NAMES 'utf8mb4'
* - restart Maxscale
* - connect to Maxscale
*/
#include <iostream>
#include <unistd.h>
#include "testconnections.h"
using namespace std;
int main(int argc, char *argv[])
{
TestConnections * Test = new TestConnections(argc, argv);
Test->stop_timeout();
char cmd [1024];
sprintf(cmd, "%s/utf64.cnf", test_dir);
for (int i = 0; i < Test->repl->N; i++)
{
Test->repl->copy_to_node(cmd, "./", i);
Test->repl->ssh_node(i, true, "cp ./utf64.cnf /etc/my.cnf.d/");
}
Test->repl->start_replication();
Test->tprintf("Set utf8mb4 for backend");
Test->repl->execute_query_all_nodes((char *) "SET GLOBAL character_set_server = 'utf8mb4';");
Test->tprintf("Set names to utf8mb4 for backend");
Test->repl->execute_query_all_nodes((char *) "SET NAMES 'utf8mb4';");
Test->set_timeout(120);
Test->tprintf("Restart Maxscale");
Test->restart_maxscale();
sleep(10);
Test->check_maxscale_alive();
//Test->check_maxscale_processes(0);
Test->stop_timeout();
Test->tprintf("Restore backend configuration\n");
for (int i = 0; i < Test->repl->N; i++)
{
Test->repl->ssh_node(i, true, "rm /etc/my.cnf.d/utf64.cnf");
}
Test->repl->start_replication();
int rval = Test->global_result;
delete Test;
return rval;
}