Soluções em Software



Desenvolvimento de Software
Sistemas WEB
Aplicativos Mobile
(app celulares e tablets)

Portais Blogs e Soluções WEB 2.0

Serviços de chat - Webnews Webconteúdo - Quiz - FAQ
Marketing Digital
Mídias sociais
Gestão de conteúdo
Portais de Comercio Eletrônicos
Lojas Virtuais

Gestão Eletrônica de Documentos



Digitalização de Documentos
Grandes Formatos
Guarda Documental
Workflows

Projetos On-Demand



Um projeto com a SUA cara.

O software se adapta as necessidades da sua empresa e não o contrário.



Soluções Tecnológicas
A CACTUS Tecnologia da Informação acredita na liberdade, em qualquer lugar e a qualquer momento, por isso fornece soluções inovadoras que realmente geram resultados nas corporações e na vida das pessoas.
Instagram
Facebook
Contato
BLOG

JUNTANDO VARIAS CONSULTAS EM UMA UNICA QUERY

17/03/2015 por Renato Dantas

o sistema da femurn utiliza 2 tabelas separadas, das publicacoes novas (cactus) e as antigas (vox). porem precisava fazer uma consulta
juntando as duas tabelas como se fossem 1.
a solucao foi usar o UNION do mysql e se mostrou muito eficiente.

Exemplo:

select * from (select values1 from table1 order by orderby1) as a
union all
select * from (select values2 from table2 order by orderby2) as b


Solucao Aplicada:

(
SELECT edic_tx_data,publ_tx_codigo,publ_tx_nome,enti_tx_nome,orga_tx_nome,publ_tx_data,publ_nb_id
FROM publicacao,orgao,entidade,edicao
WHERE publ_nb_orgao=orga_nb_id AND publ_nb_entidade=enti_nb_id AND publ_nb_edicao=edic_nb_id
$extra $extra1 ORDER BY edic_tx_data DESC
)
UNION ALL

(
SELECT edic_tx_data,publ_tx_codigo,publ_tx_nome,enti_tx_nome,publ_tx_orgao,publ_tx_data,publ_nb_id
FROM publicacaovox,entidade,edicao
WHERE publ_nb_entidade=enti_nb_id AND publ_nb_edicao=edic_nb_id
$extra $extra2 ORDER BY edic_tx_data DESC
)

Com isso funcionou normalmente. porem me deparei com um problema de ordenacao, porque ele considerava 2 consultas separadas e nao
ordenava corretamente. Para resolver foi preciso usar outro artificio:

Solução final:

select * from
(
SELECT edic_tx_data,publ_tx_codigo,publ_tx_nome,enti_tx_nome,orga_tx_nome,publ_tx_data,publ_nb_id
FROM publicacao,orgao,entidade,edicao
WHERE publ_nb_orgao=orga_nb_id AND publ_nb_entidade=enti_nb_id AND publ_nb_edicao=edic_nb_id
$extra $extra1 ORDER BY edic_tx_data DESC
) as A
UNION ALL
select * from
(
SELECT edic_tx_data,publ_tx_codigo,publ_tx_nome,enti_tx_nome,publ_tx_orgao,publ_tx_data,publ_nb_id
FROM publicacaovox,entidade,edicao
WHERE publ_nb_entidade=enti_nb_id AND publ_nb_edicao=edic_nb_id
$extra $extra2 ORDER BY edic_tx_data DESC
) as B


Com isso ele funcionou perfeitamente.

USANDO O MYSQLDUMP PARA CONSULTAS COMPLEXAS

21/03/2015 por Renato Dantas

USE A OPÇÃO -W QUE PERMITE FAZER UMA CLAUSULA WHERE NO MYSQLDUMP

mysqldump --user="user" --password="password" --opt -w"id=1" databasebname tablename

ERRO 110 AO CONECTAR A BASE DE DADOS MYSQL REMOTAMENTE

29/03/2015 por Renato Dantas

eu tive um problema para acessar remotamente o servidor da sistemascactus.com, aparecia um erro 110
o mais curioso eh que usando o mysqldump ele funcionava normalmente
depois de alguns testes tentei acessar pelo ip e nao pelo nome e deu certo.
dei um ping no endereco serverc190.netdatacenter.net e retornou o ip 198.50.100.242. tentei acessar por
esse ip e tudo funcionou normalmente.

COPIANDO UMA BASE DE DADOS MYSQL, OS ARQUIVOS SEM O DUMP

14/11/2015 por Renato Dantas

# cp -Rap /caminho/arquivos/nomebase /var/lib/mysql
# chmod -R 777 /var/lib/mysql/nomebase

depois é só ir no phpmyadmin que vai estar disponível

na hostgator nao estava conseguindo acessar o mysql remotamente, aparecei o erro abaixo:

24/03/2016 por Renato Dantas


renato@lampiao:~$ mysql -h162.214.15.98 -ucactuste_adufers -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '162.214.15.98' (111)

o que eu fiz foi entrar pelo ssh e derrubar o firewall atraves do comando
$ firewall stop


depois disso passou a funcionar normalmente. Entrei em contato com o suporte para que essa liberação possa
acontecer sem precisar derrubar o firewall

DEIXANDO O APACHE E O MYSQL MAIS RAPIDOS

05/01/2017 por Renato Dantas

NO APACHE VOCE PRECISA CONFIGURAR O ARQUIVO /etc/apache2/mods-enabled/mpm_prefork.conf
NO APACHE 1.X A VARIAVEL SE CHAMAVA MaxClients MAS A PARTIR DA VERSAO 2 SE CHAMA MaxRequestWorkers
TEM QUE LEMBRAR DISSO SE ESTIVER PESQUISANDO ALGO E VER ESSA VARIAVEL ANTIGA


NO DEBIAN PADRAO VEM A SEGUINTE FORMA:


StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0


NO CENTOS O ARQUIVO É OUTRO. É O /etc/httpd/conf/httpd.conf. NO GODADDY TINHA O SEGUINTE CONTEUDO

# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves

StartServers 1
MinSpareServers 1
MaxSpareServers 5
ServerLimit 10
MaxClients 10
MaxRequestsPerChild 4000


# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves

StartServers 1
MaxClients 10
MinSpareThreads 1
MaxSpareThreads 4
ThreadsPerChild 25
MaxRequestsPerChild 0

FAZENDO O DUMP DE UMA BASE DE DADOS

01/04/2016 por Renato Dantas


PARA FAZER O BACKUP DE UMA BASE DE DADOS COM UM SELECT NELE

mysqldump -ubackup -pSENHA basedados tabela -w "tabe_nb_id > 20367" > tabela.sql


PARA FAZER O DUMP DE UMA BASE IGNORANDO UMA TABELA

mysqldump -uBASEDADOS -pSENHA -hmysql.cactustecnologia.com.br --ignore-table=BASEDADOS.log BASEDADOS > BASEDADOS.sql;

FAZENDO O DUMP PARA UM ARQUIVO COMPACTADO

mysqldump -uBASEDADOS -pSENHA -hmysql.cactustecnologia.com.br --ignore-table=BASEDADOS.log BASEDADOS | gzip > BASEDADOS.sql.gz; date;

FAZENDO O DUMP DE UMA BASE NUM SERVIDOR REMOTO, DEPOIS CRIANDO UMA BASE DE DADOS NO SERVIDOR LOCAL E IMPORTANDO OS DADOS
date; mysqldump -uUSER -pSENHA -hmysql.cactustecnologia.com.br BASEDADOS > BASEDADOS.sql; date;
mysqladmin -ubackup -pSENHA create BASEDADOS; mysql -ubackup -pSENHA -D BASEDADOS < BASEDADOS.sql;

ERRO NO MYSQLDUMP COM O HOSTGATOR

11/08/2016 por Renato Dantas


Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax;

DESCOBRI QUE ISSO EH UM ERRO POR CAUSA DA VERSAO DO MYSQLDUMP QUE É O 5.5 E O MYSQL DO SERVIDOR QUE EH O 5.6

PRECISA ATUALIZAR O O MYSQLDUMP. NO MEU MAC O MYSQLDUMP EH5.5 MAS NO LAMPIAO EH O 5.6

ATUALIZAR LINHA OU ISNERIR CASO NAO EXISTA NO MYSQL

04/10/2016 por Renato Dantas


A SITUAÇÃO ERA A SEGUINTE: PRECISAVA FAZER UM REGISTRO DE VISITAS DAS MATERIAS DO MOSSOROHOJE
PARA PODER FAZER UM RELATORIO DE NUMERO DE VISITA POR DIA, POR MES E ETC.

PARA ISSO CRIEI UMA TABELA CHAMADA historico CONTENDO APENAS O ID DA MATERIA, A DATA E O TOTAL DE VISITAS.

DEPOIS DISSO ENCONTREI NA INTERNET 2 FORMA DE RESOLVER O PROBLEMA. USANDO O "REPLACE" OU O "ON DUPLICATE KEY"

UM EXEMPLO DO COMANDO REPLACE SERIA:

$sql = "REPLACE into table (id, name, age) values(1, 'A', 19)";

PORÉM O QUE EU UTULIZEI FOI O OUTRO, QUE FICOU DA SEGUINTE FORMA

$sql = "INSERT INTO historico (hist_nb_materia,hist_tx_data,hist_tx_visitas) VALUES('$materia','$data','$visitas')
ON DUPLICATE KEY UPDATE hist_tx_visitas = hist_tx_visitas + $visitas";

COM ISSO O QUE O MYSQL FAZ É ATUALIZAR A LINHA, CASO EXISTE, OU INSERIR CASO NAO EXISTA. AGILIZANDO ASSIM O NOSSO TRABALHO
E DIMINUINDO O USO DO MYSQL PORQUE EVITA TER QUE FAZER UMA CONSULTA PARA VERIFICAR SE JÁ EXISTE CADA LINHA ANTES DE INSERIR.

LEMBRANDO QUE PARA ISSO FUNCIONAR A TABELA FICOU DA SEGUINTE FORMA
CREATE TABLE historico (
hist_nb_materia int(5),
hist_tx_visitas int(5),
hist_tx_data datetime,
);

E POR FINAL PRECISOU DO SEGUINTE COMANDO:
ALTER TABLE `historico` ADD UNIQUE `unique_key` ( `hist_nb_materia`,`hist_tx_data` )

PERDEU A SENHA DO ROOT MYSQL. ALTERANDO A SENHA DO ROOT. ESQUECEU SENHA ROOT MYSQL

18/10/2016 por Renato Dantas


SE VOCE ESQUECEU A SENHA DO ROOT DO MYSQL EH MUITO SIMPLES DE RESOLVER:

PARE O SERVICE E SUBA ELE NOVAMENTE SEM LER A TABELA DE PRIVILEGIOS:

# /etc/init.d/mysql stop
OU
# /etc/init.d/mysqld stop
OU
# service mysqld stop

DEPOIS INICIA ELE NOVAMENTE

# mysqld --skip-grant-tables &

SE NAO ACHAR ELE, PODE FAZER UM PRA ACHAR ONDE ESTA O EXECUTAVEL
# find / -name mysqld

DEPOIS VOCE ENTRA NO CLIENTE SEM SENHA

# mysql -u root mysql

E ENTAO ATUALIZA A NOVA SENHA

use mysql;
UPDATE user SET Password=PASSWORD('NOVA_SENHA') WHERE User='root';
FLUSH PRIVILEGES;
exit;

E POR FIM INICIA O MYSQL NOVAMENTE:

# service mysqld start
TAGS