To create a sandbox environment with three instances using different ports on the same machine...
Install MySQL, MySQL Shell and MySQL Router...
mysqlsh
shell.options.sandboxDir='/mysql/mysql-sandboxes'
If you don't set this, it defaults to $HOME/mysql-sandboxesdba.deploySandboxInstance(3310)
dba.deploySandboxInstance(3320)
dba.deploySandboxInstance(3330)
\connect root@localhost:3310
cluster = dba.createCluster("myCluster")
cluster.addInstance("root@localhost:3320")
cluster.addInstance("root@localhost:3330")
cluster.status()
\q
mysqlrouter --bootstrap root@localhost:3310 --user=root --directory /mysql/myrouter
cd /mysql/myrouter
./start.sh
mysql -u root -h 127.0.0.1 -P 6446 -p
SELECT @@port;
quit
mysql -u root -h 127.0.0.1 -P 6447 -p
SELECT @@port;
quit
mysql -u root -h 127.0.0.1 -P 6447 -p
SELECT @@port;
quit
Should return 3310
Should return 3320
Should return 3330
mysqlsh --uri root@127.0.0.1:6446
dba.killSandboxInstance(3310)
Should return 3320 ->
Should return 3330 ->
dba.startSandboxInstance(3310)
mysql -u root -h 127.0.0.1 -P 6446 -p
SELECT @@port;
quit
mysql -u root -h 127.0.0.1 -P 6447 -p
SELECT @@port;
quit
dba.stopSandboxInstance(3310)
dba.stopSandboxInstance(3320)
dba.stopSandboxInstance(3330)
dba.deleteSandboxInstance(3310)
dba.deleteSandboxInstance(3320)
dba.deleteSandboxInstance(3330)