Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Erro na criacao do banco de dados

Flyway da erro porque meu mysql é 5.7, mas nao consigo atualizar. Estou no mac, fiz upgrade com brew e ele diz que a versao é 8, mas o erro continua dizendo que a versao é 5.7. O que devo fazer ?

Tentei esse tuto desinstalando e reinstalando mas tbm da erro: https://dev.to/ibrarturi/how-to-upgrade-mysql-57-to-80-on-mac-8ho

Error: The brew link step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/mysql Target /usr/local/bin/mysql already exists. You may want to remove it: rm '/usr/local/bin/mysql'

To force the link and overwrite all conflicting files: brew link --overwrite mysql

Possible conflicting files are: /usr/local/bin/mysql -> /Applications/MAMP/Library/bin/mysql

Moenah ~ % brew link --overwrite --dry-run mysql Would remove: /usr/local/bin/mysql -> /Applications/MAMP/Library/bin/mysql moemendes@Air-de-Moenah ~ % brew services listName Status User File mysql nonemoemendes@Air-de-Moenah ~ % mysql -Vmysql Ver 14.14 Distrib 5.7.32, for osx10.12 (x86_64) using EditLine wrapper

moemendes@Air-de-Moenah ~ % brew services start mysql ==> Successfully started mysql (label: homebrew.mxcl.mysql) moemendes@Air-de-Moenah ~ % brew services listName Status User File mysql error 256 moemendes ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

7 respostas

Olá Moenah!

Parece que você está enfrentando problemas ao atualizar o MySQL no seu Mac. Vamos tentar resolver o problema passo a passo:

  1. Remover a instalação anterior do MySQL: Primeiro, vamos remover a instalação atual do MySQL para evitar conflitos. Execute os seguintes comandos no terminal:
brew uninstall mysql
brew cleanup
  1. Verificar a versão do MySQL: Para verificar se o MySQL foi completamente desinstalado, execute o seguinte comando:
mysql -V

Certifique-se de que a versão do MySQL não seja exibida após executar este comando. Caso ainda esteja sendo exibida, pode ser que a desinstalação não tenha sido concluída corretamente ou exista outro MySQL instalado em um local diferente.

  1. Remover arquivos conflitantes: O erro que você mencionou indica que existem arquivos conflitantes do MySQL em /usr/local/bin/mysql. Para resolver isso, vamos remover o arquivo conflitante do diretório. Execute o seguinte comando:
sudo rm '/usr/local/bin/mysql'

Insira a senha do seu usuário quando solicitado.

  1. Verificar o status do serviço MySQL: Agora, vamos verificar o status do serviço MySQL para ter certeza de que ele foi completamente desligado. Execute o seguinte comando:
brew services list

Isso mostrará uma lista de serviços gerenciados pelo Homebrew. Certifique-se de que o serviço do MySQL não esteja listado.

  1. Instalar o MySQL: Agora, podemos proceder com a instalação do MySQL novamente. Execute o seguinte comando para instalar o MySQL usando o Homebrew:
brew install mysql

Isso instalará a versão mais recente do MySQL disponível no Homebrew.

  1. Iniciar o serviço MySQL: Após a instalação, podemos iniciar o serviço do MySQL. Execute o seguinte comando:
brew services start mysql
  1. Verificar a versão do MySQL novamente: Finalmente, verifique a versão do MySQL após a instalação:
mysql -V

Espero que seguindo esses passos você consiga atualizar com sucesso o MySQL para a versão mais recente no seu Mac. Se ainda houver problemas ou erros, verifique cuidadosamente as mensagens de erro e certifique-se de seguir as etapas corretamente. Se necessário, você também pode verificar a documentação do Homebrew ou consultar fóruns específicos para obter suporte adicional.

Se precisar de mais ajuda, estou aqui para ajudar! Boa sorte!

Ola, eu segui o passo e passo e agora a versao é 8, mas ele nao encontra meu banco.

Consigo me connectar no terminal :

~ % mysql -u root          
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 23
Server version: 8.0.33 Homebrew

Mas nao consigo me conectar com o projeto.

Caused by: org.flywaydb.core.internal.exception.FlywaySqlException: Unable to obtain connection from database: Unknown database 'doctolib_api'
--------------------------------------------------------------------------
SQL State  : 42000
Error Code : 1049
Message    : Unknown database 'doctolib_api'

Meu application.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/doctolib_api
spring.datasource.username=root

Mas consigo ver o banco no browser. Pode ter algo a ver com esses usuarios e suas permissoes? Vi que alguém resolveu um problema pareciso limpando todos os usuarios, mas que perdeu os bancos . So que rodo varios projetos em php também e tenho medo de perder a conexao no vscode para esses projetos.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E minha versao de mysql no phpmyadmin continua 5.7

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ah, se eu coloco o password root et recusa o acesso. Mas eu nunca coloquei senha, sempre foi root. Vi em outro topico algu2m com o mesmo problema e verifiquei se tem espaço em braco, mas nao.

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/doctolib_api
spring.datasource.username=root
spring.datasource.password=root
Caused by: org.flywaydb.core.internal.exception.FlywaySqlException: Unable to obtain connection from database: Access denied for user 'root'@'localhost' (using password: YES)
----------------------------------------------------------------------------------------------------------
SQL State  : 28000
Error Code : 1045
Message    : Access denied for user 'root'@'localhost' (using password: YES)

Oi!

Deixa as suas configurações assim então:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/doctolib_api?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=

Sim,tentei assim e diz que nao encontra a db doctolib_api

Caused by: org.flywaydb.core.internal.exception.FlywaySqlException: Unable to obtain connection from database: Unknown database 'doctolib_api'
--------------------------------------------------------------------------
SQL State  : 42000
Error Code : 1049
Message    : Unknown database 'doctolib_api'
solução!

Colou o parâmetro ?createDatabaseIfNotExist=true na url? Com esse parâmetro ele cria o banco sozinho e não dá esse erro.

Desculpa Rodrigo, to no trem, nao li até o fim.

Agora foi :


2023-07-24T16:16:33.387+02:00  INFO 7916 --- [  restartedMain] o.f.c.i.database.base.BaseDatabaseType   : Database: jdbc:mysql://localhost:3306/doctolib_api (MySQL 8.0)
2023-07-24T16:16:33.482+02:00  INFO 7916 --- [  restartedMain] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.041s)
2023-07-24T16:16:33.516+02:00  INFO 7916 --- [  restartedMain] o.f.core.internal.command.DbMigrate      : Current version of schema `doctolib_api`: << Empty Schema >>
2023-07-24T16:16:33.545+02:00  INFO 7916 --- [  restartedMain] o.f.core.internal.command.DbMigrate      : Migrating schema `doctolib_api` to version "1 - create-table-doctors"
2023-07-24T16:16:33.640+02:00  WARN 7916 --- [  restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor       : DB: Integer display width is deprecated and will be removed in a future release.

Estou com um outro erro mas pq parei no meio do codigo, acho que poderei resolver. Muito obrigada!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software