Skip to content

Instantly share code, notes, and snippets.

@alastori
Created April 27, 2016 14:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alastori/c956060e4d60ece79e4f0bb4c656ec4b to your computer and use it in GitHub Desktop.
Save alastori/c956060e4d60ece79e4f0bb4c656ec4b to your computer and use it in GitHub Desktop.
MySQL 5.7 - testing port conflict when trying to configure multiple instances
## Criando 2 diretorios de dados para 2 instancias de teste
mysqld --no-defaults --user=mysql --initialize-insecure \
--explicit_defaults_for_timestamp --datadir=/tmp/mysqldata1 \
--log-error=/tmp/mysqldata1/mysqld1.log
mysqld --no-defaults --user=mysql --initialize-insecure \
--explicit_defaults_for_timestamp --datadir=/tmp/mysqldata2 \
--log-error=/tmp/mysqldata2/mysqld2.log
## Inicializando uma instancia mysql na porta 13001:
mysqld --no-defaults --user=mysql -P 13001 --datadir=/tmp/mysqldata1 \
--log-error=mysqld1.log --pid-file=mysql1.pid --socket=mysqld1.sock &
[1] 27722
sleep 8
ps -ef | grep mysqld
mysql 27722 27627 3 00:26 pts/2 00:00:00 mysqld --no-defaults --user=mysql -P 13001 --datadir=/tmp/mysqldata1 --log-error=mysqld1.log --pid-file=mysql1.pid --socket=mysqld1.sock
root 27752 27627 0 00:26 pts/2 00:00:00 grep --color=auto mysqld
netstat -ap | grep mysqld
tcp6 0 0 [::]:13001 [::]:* LISTEN 27722/mysqld
unix 2 [ ACC ] STREAM LISTENING 109603 27722/mysqld mysqld1.sock
tail -3 /tmp/mysqldata1/mysqld1.log
2016-04-27T14:26:14.478967Z 0 [Note] Event Scheduler: Loaded 0 events
2016-04-27T14:26:14.479182Z 0 [Note] mysqld: ready for connections.
Version: '5.7.13-enterprise-commercial-advanced' socket: 'mysqld1.sock' port: 13001 MySQL Enterprise Server - Advanced Edition (Commercial)
cat /tmp/mysqldata1/mysqld1.log |grep ERROR
##(sem erros)
## Tentanto inicializar outra instancia na mesma porta 13001:
mysqld --no-defaults --user=mysql -P 13001 --datadir=/tmp/mysqldata2 \
--log-error=mysqld2.log --pid-file=mysql2.pid --socket=mysqld2.sock &
[2] 27758
sleep 8
[2]+ Exit 1 mysqld --no-defaults --user=mysql -P 13001 --datadir=/tmp/mysqldata2 --log-error=mysqld2.log --pid-file=mysql2.pid --socket=mysqld2.sock
##(processo mysqld não fica no ar)
ps -ef | grep mysqld
mysql 27722 27627 1 00:26 pts/2 00:00:00 mysqld --no-defaults --user=mysql -P 13001 --datadir=/tmp/mysqldata1 --log-error=mysqld1.log --pid-file=mysql1.pid --socket=mysqld1.sock
root 27786 27627 0 00:26 pts/2 00:00:00 grep --color=auto mysqld
netstat -ap | grep mysqld
tcp6 0 0 [::]:13001 [::]:* LISTEN 27722/mysqld
unix 2 [ ACC ] STREAM LISTENING 109603 27722/mysqld mysqld1.sock
##(apenas o processo antigo mysqld permanece respondendo na porta 13001)
tail -3 /tmp/mysqldata2/mysqld2.log
2016-04-27T14:26:24.194944Z 0 [Note] Shutting down plugin 'binlog'
2016-04-27T14:26:24.195482Z 0 [Note] mysqld: Shutdown complete
cat /tmp/mysqldata2/mysqld2.log |grep ERROR
2016-04-27T14:26:22.546884Z 0 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
2016-04-27T14:26:22.546905Z 0 [ERROR] Do you already have another mysqld server running on port: 13001 ?
2016-04-27T14:26:22.546929Z 0 [ERROR] Aborting
##(no log de erros existem mensagens dizendo que a porta 13001 já deve estar em uso)
## Inicializando a outra instancia mysql na porta 13002:
root@vmmysqlserver1:~# rm /tmp/mysqldata2/mysqld2.log
root@vmmysqlserver1:~# mysqld --no-defaults --user=mysql -P 13002 --datadir=/tmp/mysqldata2 \
--log-error=mysqld2.log --pid-file=mysql2.pid --socket=mysqld2.sock &
[2] 27793
sleep 8
ps -ef | grep mysqld
mysql 27722 27627 1 00:26 pts/2 00:00:00 mysqld --no-defaults --user=mysql -P 13001 --datadir=/tmp/mysqldata1 --log-error=mysqld1.log --pid-file=mysql1.pid --socket=mysqld1.sock
mysql 27793 27627 3 00:26 pts/2 00:00:00 mysqld --no-defaults --user=mysql -P 13002 --datadir=/tmp/mysqldata2 --log-error=mysqld2.log --pid-file=mysql2.pid --socket=mysqld2.sock
root 27823 27627 0 00:26 pts/2 00:00:00 grep --color=auto mysqld
netstat -ap | grep mysqld
tcp6 0 0 [::]:13001 [::]:* LISTEN 27722/mysqld
tcp6 0 0 [::]:13002 [::]:* LISTEN 27793/mysqld
unix 2 [ ACC ] STREAM LISTENING 109802 27793/mysqld mysqld2.sock
unix 2 [ ACC ] STREAM LISTENING 109603 27722/mysqld mysqld1.sock
##(agora temos 2 processos mysqld rodando, mas em portas diferentes)
tail -3 /tmp/mysqldata2/mysqld2.log
2016-04-27T14:26:30.711486Z 0 [Note] Event Scheduler: Loaded 0 events
2016-04-27T14:26:30.711881Z 0 [Note] mysqld: ready for connections.
Version: '5.7.13-enterprise-commercial-advanced' socket: 'mysqld2.sock' port: 13002 MySQL Enterprise Server - Advanced Edition (Commercial)
cat /tmp/mysqldata2/mysqld2.log |grep ERROR
##(sem erros)
## Destruindo teste
mysqladmin -uroot -P13001 --protocol=tcp shutdown
mysqladmin -uroot -P13002 --protocol=tcp shutdown
sleep 8
[1]- Done mysqld --no-defaults --user=mysql -P 13001 --datadir=/tmp/mysqldata1 --log-error=mysqld1.log --pid-file=mysql1.pid --socket=mysqld1.sock
[2]+ Done mysqld --no-defaults --user=mysql -P 13002 --datadir=/tmp/mysqldata2 --log-error=mysqld2.log --pid-file=mysql2.pid --socket=mysqld2.sock
rm -Rf /tmp/mysqldata*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment