Description:
cluster.addInstance fails when adding a mysql server with SSL support disabled
Example:
mysql-js> cluster.addInstance('root@vilma15:3004')
{"info":"A new instance will be added to the InnoDB cluster. Depending on the am
ount of data on the cluster this might take from a few seconds to several hours.
"}
Please provide the password for 'root@vilma15:3004':
{"info":"Adding instance to the cluster ..."}
{"error":"Cluster.addInstance: ERROR: Error executing the 'join-replicaset' comm
and: MySQL Instance 'vilma15@3004' has SSL support disabled. Use the option to s
kip SSL if you want to proceed with the configuration without SSL support. (Runt
imeError)"}
How to repeat:
1.- Start 2 local mysql server instances
1.1 Uncompress the mysql server zip file to a local dir, example:
C:\server\mysql-5.7.17-winx64
1.2 Create a data directory inside the server directory
C:\server\mysql-5.7.17-winx64\data
1.3 Create a data2 directory inside the server directory
C:\server\mysql-5.7.17-winx64\data2
1.4 Create a temprary directory
C:\tmp
1.5 Create another temprary directory
C:\tmp2
1.6 Create a init.sql file
C:\server\init.sql
1.7 Put the following contents in it
USE mysql;
UPDATE user SET host='%' WHERE user='root' AND host='localhost';
1.8 Open cmd and start server 1 using the following commands:
C:/server/mysql-5.7.17-winx64/bin/mysqld.exe --no-defaults --initialize-insecure --basedir="C:/server/mysql-5.7.17-winx64/bin/" --datadir="C:/server/mysql-5.7.17-winx64/data" --tmpdir=C:\tmp --lc-messages-dir="C:/server/mysql-5.7.17-winx64/share" --init-file=C:\server\init.sql
C:/server/mysql-5.7.17-winx64/bin/mysqld.exe --no-defaults --enforce-gtid-consistency --log-slave-updates --binlog-format=row --transaction-write-set-extraction=XXHASH64 --binlog-checksum=NONE --core-file --loose-group-replication-start-on-boot=false --gtid-mode=ON --secure-file-priv= --relay_log_info_repository=TABLE --master_info_repository=TABLE --port=3002 --loose-mysqlx-port=3003 --basedir="C:/server/mysql-5.7.17-winx64/bin/" --datadir="C:/server/mysql-5.7.17-winx64/data" --tmpdir=C:\tmp --pid-file=C:\tmp\mysqld.pid --core-file --server-id=1 --lc-messages-dir="C:/server/mysql-5.7.17-winx64/share" --socket=C:\tmp\JETmysql3002.sock --report_host=vilma15 --report_port=3002 --relay-log=vilma15-relay-bin
--plugin_dir=C:/server/mysql-5.7.17-winx64/lib/plugin --character-sets-dir=C:/server/mysql-5.7.17-winx64/share/charsets --log-bin=C:/tmp/log
1.9 Open cmd and start server 2 using the following commands:
C:/server/mysql-5.7.17-winx64/bin/mysqld.exe --no-defaults --initialize-insecure --basedir="C:/server/mysql-5.7.17-winx64/bin/" --datadir="C:/server/mysql-5.7.17-winx64/data2" --tmpdir=C:\tmp2 --lc-messages-dir="C:/server/mysql-5.7.17-winx64/share" --init-file=C:\server\init.sql
C:/server/mysql-5.7.17-winx64/bin/mysqld.exe --no-defaults --enforce-gtid-consistency --log-slave-updates --binlog-format=row --transaction-write-set-extraction=XXHASH64 --binlog-checksum=NONE --core-file --loose-group-replication-start-on-boot=false --gtid-mode=ON --secure-file-priv= --relay_log_info_repository=TABLE --master_info_repository=TABLE --port=3004 --loose-mysqlx-port=3005 --basedir="C:/server/mysql-5.7.17-winx64/bin/" --datadir="C:/server/mysql-5.7.17-winx64/data2" --tmpdir=C:\tmp2 --pid-file=C:\tmp2\mysqld.pid --core-file --server-id=1 --lc-messages-dir="C:/server/mysql-5.7.17-winx64/share" --socket=C:\tmp\JETmysql3004.sock --report_host=vilma15 --report_port=3004 --relay-log=vilma15-relay-bin
--plugin_dir=C:/server/mysql-5.7.17-winx64/lib/plugin --character-sets-dir=C:/server/mysql-5.7.17-winx64/share/charsets --log-bin=C:/tmp2/log
2.- Open cmd and execute the shell with the following parameters:
C:\shell\mysql-shell-1.0.6-windows-labs-x86-64bit\bin\mysqlsh.exe --node --log-level=1 --json=raw --js --interactive=full --force --node
3.- Connect to the first server
\connect -c root:@vilma15:3002
4.- Create a cluster
cluster = dba.createCluster('myCluster',{multiMaster:false, force:false, memberSsl:false});
5.- Use addInstance to add the second mysql server, provide the password manually
cluster.addInstance('root@vilma15:3004')
Output
mysql-js> cluster.addInstance('root@vilma15:3004')
{"info":"A new instance will be added to the InnoDB cluster. Depending on the am
ount of data on the cluster this might take from a few seconds to several hours.
"}
Please provide the password for 'root@vilma15:3004':
{"info":"Adding instance to the cluster ..."}
{"error":"Cluster.addInstance: ERROR: Error executing the 'join-replicaset' comm
and: MySQL Instance 'vilma15@3004' has SSL support disabled. Use the option to s
kip SSL if you want to proceed with the configuration without SSL support. (Runt
imeError)"}
Note that the dba.checkInstance says that the second server instance is ok to use:
mysql-js> dba.checkInstanceConfig('root@vilma15:3004')
Please provide the password for 'root@vilma15:3004':
{"info":"Validating instance..."}
{"status":"ok"}
{"status":"ok"}
mysql-js>