Merge branch '2.1' into 2.2
This commit is contained in:
@ -41,6 +41,8 @@ else
|
|||||||
if [ $? != 0 ]
|
if [ $? != 0 ]
|
||||||
then
|
then
|
||||||
# We need zypper here
|
# We need zypper here
|
||||||
|
sudo zypper -n refresh
|
||||||
|
sudo zypper -n update
|
||||||
sudo zypper -n install gcc gcc-c++ ncurses-devel bison glibc-devel libgcc_s1 perl \
|
sudo zypper -n install gcc gcc-c++ ncurses-devel bison glibc-devel libgcc_s1 perl \
|
||||||
make libtool libopenssl-devel libaio libaio-devel flex \
|
make libtool libopenssl-devel libaio libaio-devel flex \
|
||||||
pcre-devel git wget tcl libuuid-devel \
|
pcre-devel git wget tcl libuuid-devel \
|
||||||
@ -56,6 +58,7 @@ else
|
|||||||
else
|
else
|
||||||
# YUM!
|
# YUM!
|
||||||
sudo yum clean all
|
sudo yum clean all
|
||||||
|
sudo yum update -y
|
||||||
sudo yum install -y --nogpgcheck gcc gcc-c++ ncurses-devel bison glibc-devel \
|
sudo yum install -y --nogpgcheck gcc gcc-c++ ncurses-devel bison glibc-devel \
|
||||||
libgcc perl make libtool openssl-devel libaio libaio-devel libedit-devel \
|
libgcc perl make libtool openssl-devel libaio libaio-devel libedit-devel \
|
||||||
libedit-devel systemtap-sdt-devel rpm-sign wget \
|
libedit-devel systemtap-sdt-devel rpm-sign wget \
|
||||||
|
@ -53,6 +53,7 @@ For more details, please refer to:
|
|||||||
* MaxScale now supports IPv6
|
* MaxScale now supports IPv6
|
||||||
|
|
||||||
For more details, please refer to:
|
For more details, please refer to:
|
||||||
|
* [MariaDB MaxScale 2.1.14 Release Notes](Release-Notes/MaxScale-2.1.14-Release-Notes.md)
|
||||||
* [MariaDB MaxScale 2.1.13 Release Notes](Release-Notes/MaxScale-2.1.13-Release-Notes.md)
|
* [MariaDB MaxScale 2.1.13 Release Notes](Release-Notes/MaxScale-2.1.13-Release-Notes.md)
|
||||||
* [MariaDB MaxScale 2.1.12 Release Notes](Release-Notes/MaxScale-2.1.12-Release-Notes.md)
|
* [MariaDB MaxScale 2.1.12 Release Notes](Release-Notes/MaxScale-2.1.12-Release-Notes.md)
|
||||||
* [MariaDB MaxScale 2.1.11 Release Notes](Release-Notes/MaxScale-2.1.11-Release-Notes.md)
|
* [MariaDB MaxScale 2.1.11 Release Notes](Release-Notes/MaxScale-2.1.11-Release-Notes.md)
|
||||||
|
@ -270,10 +270,14 @@ int Mariadb_nodes::change_master(int NewMaster, int OldMaster)
|
|||||||
execute_query(nodes[i], (char *) "stop slave;");
|
execute_query(nodes[i], (char *) "stop slave;");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
execute_query(nodes[NewMaster], "STOP SLAVE");
|
||||||
|
execute_query(nodes[NewMaster], "RESET SLAVE ALL");
|
||||||
execute_query(nodes[NewMaster], create_repl_user);
|
execute_query(nodes[NewMaster], create_repl_user);
|
||||||
execute_query(nodes[OldMaster], (char *) "reset master;");
|
|
||||||
find_field(nodes[NewMaster], (char *) "show master status", (char *) "File", &log_file[0]);
|
execute_query(nodes[OldMaster], "reset master;");
|
||||||
find_field(nodes[NewMaster], (char *) "show master status", (char *) "Position", &log_pos[0]);
|
find_field(nodes[NewMaster], "show master status", "File", &log_file[0]);
|
||||||
|
find_field(nodes[NewMaster], "show master status", "Position", &log_pos[0]);
|
||||||
|
|
||||||
for (i = 0; i < N; i++)
|
for (i = 0; i < N; i++)
|
||||||
{
|
{
|
||||||
if (i != NewMaster)
|
if (i != NewMaster)
|
||||||
|
@ -13,7 +13,9 @@ typedef std::set<std::string> StringSet;
|
|||||||
StringSet state(TestConnections& test, const char* name)
|
StringSet state(TestConnections& test, const char* name)
|
||||||
{
|
{
|
||||||
StringSet rval;
|
StringSet rval;
|
||||||
char* res = test.ssh_maxscale_output(true, "maxadmin list servers|grep \'%s\'", name);
|
int exit_code;
|
||||||
|
char* res = test.maxscales->ssh_node_output_f(0, true, &exit_code,
|
||||||
|
"maxadmin list servers|grep \'%s\'", name);
|
||||||
char* pipe = strrchr(res, '|');
|
char* pipe = strrchr(res, '|');
|
||||||
|
|
||||||
if (res && pipe)
|
if (res && pipe)
|
||||||
@ -67,6 +69,11 @@ int main(int argc, char** argv)
|
|||||||
StringSet relay_master = {"Relay Master", "Slave", "Running"};
|
StringSet relay_master = {"Relay Master", "Slave", "Running"};
|
||||||
|
|
||||||
test.tprintf("Checking before stopping IO thread");
|
test.tprintf("Checking before stopping IO thread");
|
||||||
|
int exit_code;
|
||||||
|
char *output = test.maxscales->ssh_node_output(0, "maxadmin list servers", true, &exit_code);
|
||||||
|
test.tprintf("%s", output);
|
||||||
|
free(output);
|
||||||
|
|
||||||
test.add_result(state(test, "server1") != master, "server1 is not a master");
|
test.add_result(state(test, "server1") != master, "server1 is not a master");
|
||||||
test.add_result(state(test, "server2") != slave, "server2 is not a slave");
|
test.add_result(state(test, "server2") != slave, "server2 is not a slave");
|
||||||
test.add_result(state(test, "server3") != relay_master, "server3 is not a relay master");
|
test.add_result(state(test, "server3") != relay_master, "server3 is not a relay master");
|
||||||
@ -76,6 +83,9 @@ int main(int argc, char** argv)
|
|||||||
sleep(10);
|
sleep(10);
|
||||||
|
|
||||||
test.tprintf("Checking after stopping IO thread");
|
test.tprintf("Checking after stopping IO thread");
|
||||||
|
output = test.maxscales->ssh_node_output(0, "maxadmin list servers", true, &exit_code);
|
||||||
|
test.tprintf("%s", output);
|
||||||
|
free(output);
|
||||||
test.add_result(state(test, "server1") != master, "server1 is not a master");
|
test.add_result(state(test, "server1") != master, "server1 is not a master");
|
||||||
test.add_result(state(test, "server2") != slave, "server2 is not a slave");
|
test.add_result(state(test, "server2") != slave, "server2 is not a slave");
|
||||||
test.add_result(state(test, "server3") != relay_master, "server3 is not a relay master");
|
test.add_result(state(test, "server3") != relay_master, "server3 is not a relay master");
|
||||||
|
@ -44,11 +44,11 @@
|
|||||||
|
|
||||||
#define NEW_LOAD_DBUSERS_QUERY "SELECT u.user, u.host, d.db, u.select_priv, u.%s \
|
#define NEW_LOAD_DBUSERS_QUERY "SELECT u.user, u.host, d.db, u.select_priv, u.%s \
|
||||||
FROM mysql.user AS u LEFT JOIN mysql.db AS d \
|
FROM mysql.user AS u LEFT JOIN mysql.db AS d \
|
||||||
ON (u.user = d.user AND u.host = d.host) WHERE u.plugin = '' %s \
|
ON (u.user = d.user AND u.host = d.host) WHERE u.plugin IN ('', 'mysql_native_password') %s \
|
||||||
UNION \
|
UNION \
|
||||||
SELECT u.user, u.host, t.db, u.select_priv, u.%s \
|
SELECT u.user, u.host, t.db, u.select_priv, u.%s \
|
||||||
FROM mysql.user AS u LEFT JOIN mysql.tables_priv AS t \
|
FROM mysql.user AS u LEFT JOIN mysql.tables_priv AS t \
|
||||||
ON (u.user = t.user AND u.host = t.host) WHERE u.plugin = '' %s"
|
ON (u.user = t.user AND u.host = t.host) WHERE u.plugin IN ('', 'mysql_native_password') %s"
|
||||||
|
|
||||||
static int get_users(SERV_LISTENER *listener, bool skip_local);
|
static int get_users(SERV_LISTENER *listener, bool skip_local);
|
||||||
static MYSQL *gw_mysql_init(void);
|
static MYSQL *gw_mysql_init(void);
|
||||||
@ -640,7 +640,8 @@ static bool check_server_permissions(SERVICE *service, SERVER* server,
|
|||||||
|
|
||||||
if (row && strcasecmp(row[0], "Y") != 0)
|
if (row && strcasecmp(row[0], "Y") != 0)
|
||||||
{
|
{
|
||||||
MXS_WARNING("[%s] User '%s' is missing the SHOW DATABASES privilege.",
|
MXS_WARNING("[%s] User '%s' is missing the SHOW DATABASES privilege. "
|
||||||
|
"This means that MaxScale cannot see all databases and authentication can fail.",
|
||||||
service->name, user);
|
service->name, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,5 +11,6 @@ if(AVRO_FOUND AND JANSSON_FOUND)
|
|||||||
add_subdirectory(test)
|
add_subdirectory(test)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(STATUS "No Avro C or Jansson libraries found, not building avrorouter.")
|
message(FATAL_ERROR "No Avro C or Jansson libraries found, cannot build avrorouter. "
|
||||||
|
"Use the -DBUILD_CDC=N option to `cmake` to disable building of the avrorouter.")
|
||||||
endif()
|
endif()
|
||||||
|
Reference in New Issue
Block a user