MySQL InnoDB Cluster, che combina le tecnologie MySQL per consentirti di distribuire e amministrare una soluzione completa integrata ad alta disponibilità per MySQL. Questo contenuto è una panoramica di alto livello di InnoDB Cluster.
Un cluster InnoDB è costituito da almeno tre istanze di MySQL Server e fornisce funzionalità di scalabilità e alta disponibilità. InnoDB Cluster utilizza le seguenti tecnologie MySQL:
MySQL Shell, che è un client avanzato e un editor di codice per MySQL.
MySQL Server e Group Replication, che consente a un set di istanze MySQL di fornire un'elevata disponibilità. InnoDB Cluster fornisce un modo programmatico alternativo e facile da usare per lavorare con Group Replication.
MySQL Router, un middleware leggero che fornisce un routing trasparente tra la tua applicazione e InnoDB Cluster.
Di seguito è riportato lo script utilizzato nel video
MySQL Shell
Server MySQL min 3 server
Mysql Router come loadbalancer
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
yum installa mysql-shell -y
Installa MysqlRouter solo sul server delle applicazioni da yum repository.
yum install mysql-shell -y
sudo mysqlsh –pym pip install request
sudo yum install mysql-router -y
mysqlsh –uri [email protected]
Not_so_secure1!
Not_so_secure1!
Fallo su tutte le istanze
dba.configureInstance()
fornire la password
2
innodbcluster
Strong_Password1!
dba.checkInstanceConfiguration('[email protected]')
\c [email protected]:3306
var mycls=dba.createCluster('MUGHEES_CLS')
mycls.describe()
mycls.status()
mycls.SetupRouterAccount( 'myrouter')
Alla prima prmry:
mycls.addinstance('mysql2:3306')
mycls.addinstance('mysql3:3306')
Sul server del router:
mysqlrouter –bootstrap [email protected] -d myrouter_idc –account=myrouter
mysqlrouter –bootstrap [email protected] –utente mysqlrouter
###############Server:mysql1:#########################
CREATE USER 'myadmin'@'%' IDENTIFICATO DA 'Strong_Password1!'
Concedi tutti i privilegi su *.* a myadmin'@'%' con opzione di concessione;
mysqlsh –uri [email protected]
\sql
select @@hostname;
CREA DATABASE schoool;USE schoool;
CREA TABELLA se non esiste schoool.student(stndid int primary key auto_increment,stdname varchar(100),phone int, classid int);
INSERT schoool.student(stdname,phone,classid) values('Aslam',123456977,7);
INSERT schoool.student(stdname,phone,classid) values('Mughees' ,123456977,8);
INSERT schoool.student(stdname,phone,classid) values('Ahmed',123456977,9);
SELECT * FROM schoool.student;
seleziona @@nomehost;
#########################Server:mysq12########################
esempio [email protected]
\sql
seleziona @@nomehost
SELEZIONA * DA school.student;
mentre [ 1 ]fa
sleep 1
docker exec -it mysql-client4 mysql -h 192.168.56.110 -P 6447 -uinnodbcluster -pStrong_Password1! -e "seleziona @@nomehost;"
fatto