12
respostas

Falha ao iniciar o MySQL Server 8.0

Olá!

Estou tentando iniciar o MySQL Server para dar continuidade no curso de JPA, então comecei a assistir o curso de Introdução a SQL, mas aparentemente não será ensinado como resolver esse problema. Quando eu tento iniciar o MySQL pelo server eu recebo as seguintes msg:

tentei tres comandos: mysqld.exe ; mysqld.exe -u root - p e mysqld --initialize

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld.exe 2019-12-04T09:29:57.390971Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.18) starting as process 14820 2019-12-04T09:29:57.393517Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test 2019-12-04T09:29:57.393580Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test 2019-12-04T09:29:57.393710Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\data' (OS errno: 2 - No such file or directory) 2019-12-04T09:29:57.409780Z 0 [ERROR] [MY-010119] [Server] Aborting 2019-12-04T09:29:57.409934Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.18) MySQL Community Server - GPL.

C:\Program Files\MySQL\MySQL Server 8.0\bin>

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld.exe -u root -p Enter password: **** mysqld: Can not perform keyring migration : Invalid --keyring-migration-source option. 2019-12-04T09:30:43.263639Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.18) starting as process 14348 2019-12-04T09:30:43.266084Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test 2019-12-04T09:30:43.266147Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test 2019-12-04T09:30:43.266717Z 0 [ERROR] [MY-011084] [Server] Keyring migration failed. 2019-12-04T09:30:43.285300Z 0 [ERROR] [MY-010119] [Server] Aborting 2019-12-04T09:30:43.285459Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.18) MySQL Community Server - GPL.

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --initialize mysqld: Can't create directory 'C:\Program Files\MySQL\MySQL Server 8.0\data' (OS errno 13 - Permission denied) 2019-12-04T09:34:43.815973Z 0 [System] [MY-013169] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.18) initializing of server in progress as process 2556 2019-12-04T09:34:43.818385Z 0 [ERROR] [MY-010187] [Server] Could not open file 'C:\Program Files\MySQL\MySQL Server 8.0\data\DESKTOP-C9ECVCP.err' for error logging: Permission denied 2019-12-04T09:34:43.828033Z 0 [ERROR] [MY-013236] [Server] The designated data directory C:\Program Files\MySQL\MySQL Server 8.0\data\ is unusable. You can remove all files that the server added to it. 2019-12-04T09:34:43.833036Z 0 [ERROR] [MY-010119] [Server] Aborting 2019-12-04T09:34:43.833173Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.18) MySQL Community Server - GPL.

C:\Program Files\MySQL\MySQL Server 8.0\bin>

12 respostas

Olá Átila!

Você teve algum erro durante a instalação do MySQL?? Você tem o Workbench instalado na sua máquina?? Se sim, você consegue acessar o MySQL pelo Workbench ??

Sobre os comandos, provavelmente você vai receber um erro quando executar o comando:

mysql.exe

Porque você vai estar tentando fazer o acesso sem fornecer um usuário. Na minha máquina eu consigo acessar o MySQL pelo terminal, com o comando:

mysql -u admin -p

Sendo que meu usuário é "admin" e não o root padrão, porque fiz a alteração posteriormente a instalação. Então recomendo tentar esse comando dentro da pasta bin, claro colocando o seu usuário pré configurado, e logo abaixo ele vai pedir a senha do usuário, você digita e depois dá um enter.

Caso não funcione coloca aqui o erro, para gente poder ajudar!!

Bom dia!

Eu tentei o comando com usuário mysqld -u root/admin -p, mas então eu recebo a mensagem: Can not perform keyring migration : Invalid --keyring-migration-source option.

Como eu consigo usar o Workbench normalmente eu sei que o usuário e senha estão certos.

Para fazer o curso de SQL que eu tenho que entrar no programa MySQL Workbench eu consigo acessar sem problemas fornecendo senha e usuario. O meu problema é quando eu estou fazendo o curso de JPA e quero persistir os dados do projeto Java para o MySQL, qndo eu rodo o código eu recebo a exceção; Exception in thread "main" java.lang.ExceptionInInitializerError at br.com.caelum.financas.util.PopulaConta.main(PopulaConta.java:11) Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

Por isso que eu estou tentando iniciar o MySQL Server no terminal, assim como o professor fez no curso.

Eu não tive falhas na instalação do software, mas as aplicações que precisam do Excel não foram instaladas, pois eu não tenho Excel na minha máquina.

Átila, você já verificou dentro dos serviços do Windows se o serviço do MySQL está executando normalmente ?

Você poderia ver as permissões da pasta "MySQL Server 8.0", geralmente os usuários só tem permissão de leitura, altere e coloque permissão de gravação, assim vai poder criar novas pastas dentro desse diretório, é o que está acontecendo. Porém, na minha máquina aqui, o diretorio "data" do MySQL fica em "C:\ProgramData\MySQL\MySQL Server 8.0\Data", onde "ProgramData" é uma pasta oculta do windows, penso que você pode ir no arquivo "my.ini" e alterar a localização do diretorio data, como a própria documentação do MySQL fala.

Oi Jonilson,

Sim, o serviço MySQL80 está em execução. O MySQL Workbench também aponta o mesmo status.

A pasta "MySQL Server 8.0" já estava configurado para gravação por usuários.

O endereço descrito no arquivo "my.ini" coincide com o endereço real da pasta "data".

Eu me questionei se estaria tudo certo com o Hibernate. Então eu deletei o meu projeto, e peguei o do professor. Já na biblioteca eu percebi que as versões dos aquivos que eu usei eram diferentes da do professor, e que no projeto do professor tinha muito mais aquivos. Até aí eu entendo, o curso foi gravado em 2017. Mas também tinha arquivos do projeto do professor que não tinha no meu, isso eu achei muito estranho uma vez que eu sigo a aula ponto a ponto. Tentei subir novamente o projeto, e as exceções foram totalmente diferentes. (A falha no terminal é ainda o mesmo)

Existe a chance da falta de Excel no computador causar esses erros?

dez 08, 2019 10:07:36 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [ name: financas ...] dez 08, 2019 10:07:36 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.2.6.Final} dez 08, 2019 10:07:36 PM org.hibernate.cfg.Environment INFO: HHH000206: hibernate.properties not found Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.hibernate.boot.spi.XmlMappingBinderAccess.(XmlMappingBinderAccess.java:43) at org.hibernate.boot.MetadataSources.(MetadataSources.java:87) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:208) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:170) at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) at br.com.caelum.financas.util.JPAUtil.(JPAUtil.java:10) at br.com.caelum.financas.teste.TesteConta.main(TesteConta.java:24) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 13 more

Olá Átila!

Se existe a chance da falta de Excel no computador causar esses erros? Não, creio que não, só se você tiver usando algum recurso do Excel, ai você pode ter algum problema.

Agora voltando ao problema, o mais estranho é você não conseguir fazer login no MySQL pelo terminal, tendo em vista que você consegue o acessar usando o Workbench.

Você pode verificar se a pasta "data" foi criada? Se sim, então exclua ela. Depois execute o seguinte comando:

mysqld --initialize --console

Se não funcionar tente esse outro:

mysqld --initialize-insecure --console

Esse comandos são para inicializar o MySQL sem usuário, mais isso só deve funcionar se o MY.ini estiver configurado corretamente e apontando para o local certo a pasta "data", depois disso você pode sair do console do MySQL com o comando " exit; ". Depois, você pode executar esse outro comando:

mysql -u root --skip-password

Esse comando é pra resetar a senha do usuário root. E por fim pode executar esse outro pra colocar uma nova senha no root:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'nova_senha_aqui';

Tenta essa processo e veja se funciona, se não funcionar você coloca aqui, para gente tentar solucionar esse problema!

Oi Jonilson,

Achei que tinha respondido ontem, mas acho que acabei no enviando a resposta.

Deu tudo certo até o comando:

mysql -u root --skip-password

Recebi uma msg de erro dizendo que o acesso foi negado, e a partir disso eu não consegui acessar nem com a minha senha normal, nem com a senha temporária gerada pelo próprio comando. Não consegui acessar nem o Workbench mais, com nenhuma das duas senhas.

Você acha que é uma solução instalar o Linux? Ou será que eu terei mais problemas pois o curso é MAC/Windows?

Se quiser, também podemos marcar um horário para vc acessar o meu PC diretamente com Team View.

Aceito qualquer sugestão, preciso desse acesso para concluir o curso de MySQL, SpringMVC e JPA. Não posso desistir.

Átila, sobre usar Linux para fazer o treinamento não há nenhum problema já que o MySQL é multiplataforma, e também vejo uma grande numero de soluções para esse problema, porém a maioria é para Linux, onde o MySQL é executado quando em ambiente de produção. Porém podemos tentar mais algumas alternativas, caso não funcione, agente ver um horário pra um acesso remoto e em ultimo caso a instalação do linux, já que isso demanda um bom tempo até você instalar todas as ferramentas.

Tente realizar o reset da senha do root seguindo os passos da documentação oficial do MySQL 8.0

Caso não funcione os passos do link acima você poderia informar se quando você executou o comando abaixo ele retornou alguma mensagem? Se sim, poderia colocar aqui pra gente ver.

mysqld --initialize --console

Você excluiu a pasta data antes de fazer esse processo?

Você poderia colocar o conteúdo do seu arquivo MY.ini aqui para eu poder analisar.

Oi Jonilson,

Sim, eu exclui a pasta Data. Eu achei que ontem eu tinha enviado minha resposta, lá eu tinha colocado a msg de erro dizendo que o acesso havia sido negado. Como eu não estava mais conseguindo acessar eu deletei o MySQL e todas as pastas, eu posso instalar tudo de novo para pegar o aquivo My.Ini e para fazer o mesmo procedimento de ontem.

Eu pensei na solução do Linux pois eu ouvi falar que as empresas de programação trabalham com Linux, e como eu não tenho nenhuma experiencia com esse sistema operacional, eu achei que seria uma boa oportunidade de aprender, se o único problema for tempo, eu não me importo, acho que terei que instalar o Linux de qualquer maneira, comprei o pendrive para fazer isso, mas só chega na sexta-feira. Até lá eu farei aulas de CSS.

Estou terminando uma aula agora. Hoje a noite eu reinstalo o MySQL e te mando as informações que você pediu.

Obrigado pela paciência!

Oi Jonilson,

Se eu usar o comando:

mysqld --initialize --console

Sem ter a pasta my.ini salva no endereço:

C:\Program Files\MySQL\MySQL Server 8.0

A msg é essa: E nenhuma pasta é gerada.

C:\>mysqld --initialize --console

mysqld: Can't create directory 'C:\Program Files\MySQL\MySQL Server 8.0\data' (OS errno 13 - Permission denied) 2019-12-11T18:54:31.699966Z 0 [System] [MY-013169] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.18) initializing of server in progress as process 11212 2019-12-11T18:54:31.871316Z 0 [ERROR] [MY-013236] [Server] The designated data directory C:\Program Files\MySQL\MySQL Server 8.0\data\ is unusable. You can remove all files that the server added to it. 2019-12-11T18:54:31.877859Z 0 [ERROR] [MY-010119] [Server] Aborting 2019-12-11T18:54:31.880406Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.18) MySQL Community Server - GPL.

Se eu usar esse mesmo comando, quando o arquivo my.ini está salvo naquele endereço, a msg é essa: Veja eu eu volto automáticamente para o endereço: C:>

C:>mysqld --initialize --console 2019-12-11T18:56:44.055112Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2019-12-11T18:56:44.055169Z 0 [System] [MY-013169] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.18) initializing of server in progress as process 11156 2019-12-11T18:57:16.970868Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: jwu_o<4TrhyP

C:>

E a pasta Data é novamente gerada.

O conteúdo do arquivo my.ini é conforme abaixo:



    # Other default tuning values
# MySQL Server Instance Configuration File
# ----------------------------------------------------------------------
# Generated by the MySQL Server Instance Configuration Wizard
#
#
# Installation Instructions
# ----------------------------------------------------------------------
#
# On Linux you can copy this file to /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options
# (@localstatedir@ for this installation) or to
# ~/.my.cnf to set user-specific options.
#
# On Windows you should keep this file in the installation directory 
# of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To
# make sure the server reads the config file use the startup option 
# "--defaults-file". 
#
# To run the server from the command line, execute this in a 
# command line shell, e.g.
# mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
#
# To install the server as a Windows service manually, execute this in a 
# command line shell, e.g.
# mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
#
# And then execute this in a command line shell to start the server, e.g.
# net start MySQLXY
#
#
# Guidelines for editing this file
# ----------------------------------------------------------------------
#
# In this file, you can use all long options that the program supports.
# If you want to know the options a program supports, start the program
# with the "--help" option.
#
# More detailed information about the individual options can also be
# found in the manual.
#
# For advice on how to change settings please see
# https://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
#
#
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]

# pipe=

# socket=MYSQL

port=3306

[mysql]
no-beep

# default-character-set=

# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this 
# file.
#
# server_type=3
[mysqld]

# The next three options are mutually exclusive to SERVER_PORT below.
# skip-networking
# enable-named-pipe
# shared-memory

# shared-memory-base-name=MYSQL

# The Pipe the MySQL Server will use
# socket=MYSQL

# The TCP/IP Port the MySQL Server will listen on
port=3306

# Path to installation directory. All paths are usually resolved relative to this.
# basedir="C:/Program Files/MySQL/MySQL Server 8.0/"

# Path to the database root
datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data

# The default character set that will be used when a new schema or table is
# created and no character set 

Olá Átila!

Continuo pensando que o problema é com as permissões de pasta, pessoalmente não faço isso, mas como o seu caso é bastante estranho e você realmente precisa, você pode mandar um email para jonilson.silva@caelum.com.br, com os dados para acesso remoto pelo teamviewer, pra gente poder solucionar.