quarta-feira, 27 de setembro de 2023

Senha de Root do MySQL no Linux

Começo este post informando que decidi fazer a instalação do MySQL em minha máquina.

Estou usando o KDE Neon 5.27.8

Realizei a instalação do MySQL do próprio repositório através do comando:

sudo pkcon install mysql-server

Durante a instalação não houve pedido para informar a senha de root do mysql.

Instalação terminada, ainda no terminal digitei:

sudo mysql

Acessando assim o prompt do mysql.

Mas eu queria informar uma senha para o usuário root. Dei um quit do mysql e novamente no terminal do sistema, utilizei o seguinte comando:

sudo mysql_secure_installation

Serão apresentadas algumas opções de configuração do tipo sim ou não (y ou n).

A primeira é o nível da política de senha. São 3 opções: LOW, MEDIUM, STRONG (não irei me extender nas opções, pois são todas bem explicadas no processo).

Após selecionar o nível, deveria vir a opção de informar uma senha para o root, porém recebi a seguinte mensagem informando que essa parte será pulada.

"Skipping password set for root as authentication with auth_socket is used by default."

A mensagem indica que a configuração de autenticação do usuário root está usando o método "auth_socket" por padrão e, portanto, não é necessário definir uma senha para esse usuário.

O "auth_socket" é um mecanismo de autenticação do MySQL que permite que o usuário se autentique com base no usuário do sistema operacional. Isso significa que, se você estiver logado como um usuário do sistema operacional com privilégios de root ou usando o comando "sudo", poderá se conectar ao MySQL como usuário root sem fornecer uma senha.

Neste caso, para solucionar o problema de dar uma senha ao root a solução foi acessar o mysql através do sudo e uma vez no prompt do mysql, utilizar o comando:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'sua_senha_aqui';

Feito isto, basta sair e tentar autenticar-se com a senha que acabou de cadastrar para o root.

Caso queira retornar a autenticar-se como root utilizando o usuário admin do sistema operacional, utilize o comando:

ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;

É sempre interessante, por questões de segurança, criar um usuário para utilizar o banco e não ficar utilizando o root.

Siga estes passos dentro do mysql:


create user 'nome_usuário'@'localhost' identified by 'sua_senha';
grant all privileges on *.* to 'nome_usuário'@'localhost' with grant option;
flush privileges;

É isso!

Espero ter ajudado.
Abraço a todos

sábado, 15 de abril de 2023

Dica Rápida: Cálculo de Combinações Possíveis

 Estava procurando uma fórmula para o cálculo de combinações possíveis dentro de um sorteio.

Exemplo: dentro deste escopo "1 - 2 - 3 - 4 - 5", onde sorteia-se 3 números, temos as seguintes possibilidades:

1 2 3

1 2 4

1 2 5

1 3 4

1 3 5

1 4 5

2 3 4

2 3 5

2 4 5

3 4 5


Temos 10 combinações possíveis.

Em um exemplo pequeno assim fica fácil contar manualmente, mas e num exemplo maior, como uma loteria?


Para isso temos a seguinte fórmula

x=total de números

y=quantidade números a serem sorteados.

C(x,y) = x! / (y! * (x - y)!)

C(5,3) = 5! / (3! * (5 - 3)!)

C(5,3) = 120 / (3! * 2!)

C(5,3) = 120 / (6 * 2)

C(5,3) = 120 / 12

C(5,3) = 10

Adicionalmente podemos acrescentar uma outra fórmula.

Se repararmos no exemplo mostrado, cada um dos números foi sorteado num total de 6 vezes.

Para este cálculo, podemos utilizar a seguinte fórmula:

C(n-1, k-1)

n = 5

k = 3

C(4, 2) = 4! / (2! * (4-2)!)

C(4, 2) = 24 / (2 * 2)

C(4, 2) = 24 / 4

C(4, 2) = 6


É isso, espero ter ajudado.


Abraços,

Terence.

quarta-feira, 8 de março de 2023

Dica rápida sobre o winget

 O Winget é um gerenciador de pacotes para o Windows que instala os aplicativos usando o Windows Package Manager (parecido com o apt, dnf, e outros do mundo linux). Quando você usa o comando "winget install" para instalar um aplicativo, ele baixa o pacote de instalação do aplicativo da Internet e o salva em um local temporário no seu computador antes de instalar o aplicativo.

O local padrão onde os pacotes de instalação temporários do Winget são armazenados é a pasta "%LocalAppData%\Temp\winget".

Após a instalação do aplicativo, os arquivos do pacote de instalação temporários são excluídos automaticamente pelo Winget. Portanto, se você precisar instalar o mesmo aplicativo novamente, o Winget baixará o pacote de instalação novamente.

Porém, se ocorrer um erro de instalação, você poderá ir até a pasta temporária citada anteriormente e muito provavelmente o instalador ainda estará ali, não tendo assim que aguardar um novo download, podendo realizar a execução do instalador manualmente com um duplo clique.

Abraços a Todos!

terça-feira, 28 de fevereiro de 2023

Erro Lazarus Data Desktop

Ao tentar realizar uma conexão com o Lazarus Data Desktop em um banco Firebird, recebi a seguinte mensagem: "Can not load default Firebird clients ("libfbclient.so.2.5.1" or "libgds.so" or "libfbembed.so.2.5"). Check your installation".
Estou usando a distribuição KDE-Neon e tenho instalado o Firebird 4.0.2. 

Atualmente o padrão de instalação do Firebird é na pasta "/opt/firebird"

As libs do Firebird encontram-se em "/opt/firebird/lib". Onde existe a "libfbclient.so.4.0.2. 
Então criei um link simbólico com nome de "libfbclient.so.2.5.1" apontando para a "libfbclient.so.4.0.2", porém o problema persistiu. 

Procurei por outros locais onde cotenham instalações de libs do Firebird, pois na instalação do FlameRobin, ele tem como dependência a libfbclient2 por exemplo. 

Encontrei 2 localizazões: 
"/usr/lib64" -> utilizei o mesmo processo de criar um link simbólico para a libfbclient.so.4.0.2, mas ainda assim não funcionou. 

"/usr/lib/x86_64-linux-gnu/" -> utilizei o mesmo processo de criar um link simbólico para a libfbclient.so.4.0.2,desta vez obtendo sucesso na conexão. 

 Estando dentro da pasta "x86_64-linux-gnu", o comando utilizado foi o seguinte: 
sudo ln -s /opt/firebird/lib/libfbclient.so.4.0.2 libfbclient.so.2.5.1

Espero ter ajudado.

Abraços

Até a próxima.

domingo, 5 de fevereiro de 2023

Primeiros Passos no Git / GitHub

 Obviamente o primeiro passo é instalar (caso já não esteja instalado) o Git.

No caso de usuários Linux, 99% de chances de já vir instalado por padrão.

Não vou entrar em detalhes de comandos, serei direto e conciso.

Pela linha de comando, acessar a pasta onde encontra-se seu projeto.

cd /<caminho>/<do>/<projeto> 

Agora é configurar a conta para trabalhar com o Git. Existe a configuração local, mas usarei a global para simplificar.

git config --global user.name "<meu nome>"
git config --global user.email "<meu@email.com>"

Agora é iniciar o repositório Git.

Estando dentro da pasta do projeto digite:

git init

Feito isto, será criada a pasta oculta ".git". Pronto! Já temos um controle de versionamento git.

A seguir temos 2 passos que são opcionais, ou seja, não são obrigatórios, mas para alguns pode ser interessante.

1º - criar um README.MD. É um arquivo do tipo readme em markdown. Existem editores para salvar arquivos em markdown, é só escolher e utilizar o de sua preferência.

2º - criar o arquivo .gitignore (sem extensão mesmo). Caso haja arquivos que não deseje ou necessitem ser incluídos no versionamento, acrescente-os neste arquivo. Uma linha para cada arquivo ou diretório que não quer incluir.

Exemplo:

Arquivo1
Arquivo2
Pasta1
Pasta2/subpasta/*.extensão -> sim, você pode usar curingas.

Para salvar o versionamento são 2 passos:

1º - passar os arquivos para a "stage area". É uma área para "pré-salvamento". Você irá selecionar os arquivos para serem salvos.

Estando dentro da pasta digite "git add ." ou "git add --all". Os 2 comandos incluirão todos os arquivos na stage area (menos aqueles informados no gitignore).

Pode-se informar arquivo por arquivo: git add <nome do arquivo> 

ou mais de 1 arquivo separados pelo espaço

git add <arquivo1> <arquivo2> <arquivoN>

usando "git status", serão exibidos os arquivos prontos para serem versionados.

Vamos então salva-los:

git commit -m "mensagem para identificar o tipo de alteração realizada para num possível futuro você reconhecer e voltar para ela."

Pronto! Primeiro versionamento realizado.

Agora vamos enviar para o GitHub. Primeiro deve-se acessar sua conta do GitHub e criar  o repositório.

Depois disso criar um token para poder realizar o "push" do seu computador para o GitHub.

Clique no seu usuário e vá em settings.



Depois Developer settings



Depois Personal access tokens -> Tokens (classic)


Botão generate new token.
Informar um nome, tempo de validade do token, e marcar as permissões que o usuário do token terá.

Feito isto, retornamos ao repositório local e usamos o seguinte comando para adicionar o repositório remoto do GitHub (geralmente chamado de origin).

git remote add origin https://github.com/<seu>/<repositório.git>

git branch -M main

git remote set-url origin https://<seu_token>@github.com/<seu>/<repositorio.git>

Por fim, o envio:
git push -u origin main

Com estes passos os arquivos devem estar no Repositório do GitHub.


Abraços e até a próxima!