terça-feira, 13 de março de 2018

MySQL Cheat Sheet

Então, primeiro postei em algum momento como senti que deveria ser. Fiquei muito ocupado ainda trabalhando com o MySQL e todos os garfos relacionados e não consegui colocar blogs como eu senti que deveria. Então vou trabalhar com isso. 

Agora, sendo dito, recordei no outro dia um site que eu adorava porque era uma lista comum de tabelas de truques VI. A sintaxe que você conhece, você sabe que precisa, mas digite 3 vezes até que esteja certo. Quando é que entra logo, olha-o estupefato, pensei que já escrevi isso. 

Então eu percebi por que não uma simples lista de comandos comuns do MySQL que todos nós fazemos 50 vezes por mês ou devemos saber como a parte de trás da nossa mão, mas esquecemos quando o cliente está olhando por cima do ombro. 
Para iniciantes.. 
Criamos um novo servidor MySQL 5.7.6+ e entre. 
Precisa mudar a senha antes que possamos fazer qualquer coisa. Mas é Alter User não Set pass. 
Queremos saber como ler a senha ainda como está em texto limpo. 

ALTER USER 
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 
Definir senha é 
SET PASSWORD FOR 'bob''@'localhost' = PASSWORD('cleartext password'); 

Purgar logs binários 
PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2008-04-02 00:00:00
PURGE BINARY LOGS BEFORE NOW() - interval 3 DAY;

MySQL Dump 
# COMPACT WILL REMOVE DROP STATEMENTS
mysqldump --events --master-data=2 --routines --triggers --compact --all-databases > db.sql
mysqldump --events --master-data=2 --routines --triggers --all-databases > NAME.sql
mysqldump --opt --routines --triggers dbname > dbname.sql
mysqldump --opt --routines --triggers --no-create-info joomla jforms > dataonly.sql 

Desligue as Chaves Estrangeiras por um momento 
SET GLOBAL foreign_key_checks=0; 



Skip Grants 
/usr/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf --skip-grant-tables
vi /etc/mysql/my.cnf
[mysqld]
skip-grant-tables


BinLog avaliações 
--base64-output = DECODE-ROWS & --verbose 
mysqlbinlog --defaults-file=/home/anothermysqldba/.my.cnf --base64-output=DECODE-ROWS --verbose binlog.005862 > 005862.sql

CLIENTE SEGUINTE DE MYSQL 
mysql_config_editor print --all
mysql_config_editor set --user=mysql --password --login-path=localhost --host=localhost
mysql --login-path=localhost -e 'SELECT NOW()';

Troca 
sudo swapoff -a
To set the new value to 10: echo 10 | sudo tee /proc/sys/vm/swappiness
sudo swapon -a 

ESQUEMA INFORMATIVO 
set global innodb_stats_on_metadata=0; 

Variáveis ​​AWS 
CALL mysql.rds_show_configuration;
> call mysql.rds_set_configuration('binlog retention hours', 24);
> call mysql.rds_set_configuration('slow_launch_time', 2);

Encontre em que tabela um nome de coluna está em 
SELECT TABLE_SCHEMA , TABLE_NAME , COLUMN_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'fieldname' ; 
O cliente diz que está em TableA, mas eles têm 50 bases de dados. Qual esquema tem TableA 
SELECT TABLE_SCHEMA , TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = 'TableA' ; 

Ajude os trabalhadores escravos 
Select @@slave_parallel_workers;
Stop Slave; Set GLOBAL slave_parallel_workers=5; Start Slave;

MySQL Multi 
5.6>
To start both : mysqld_multi start 1,2
To check on status of both: mysqld_multi report 1,2
To check on status or other options you can use just one

5.7<
[mysqld1] BECOMES [mysqld@mysqld1]
systemctl start mysqld@mysqld1
systemctl start mysqld@mysqld2
systemctl start mysqld@mysqld3
systemctl start mysqld@mysqld4 
Apenas tabelas do sistema de atualização do MySQL 
mysql_upgrade --defaults-file=/home/ anothermysqldba /.my.cnf --upgrade-system-tables 

ERROR DE REPLICAÇÃO DE PASSAGEM 
STOP SLAVE; SET GLOBAL sql_slave_skip_counter =1; START SLAVE; SELECT SLEEP(1); SHOW SLAVE STATUS\G