AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 1592
Accepted
Synetech
Synetech
Asked: 2011-03-07 00:09:38 +0800 CST2011-03-07 00:09:38 +0800 CST 2011-03-07 00:09:38 +0800 CST

Instalando tabelas MySQL padrão no Windows (mysql_install_db)

  • 772

No Linux, as tabelas de concessão padrão do MySQL podem ser criadas com o mysql_install_dbscript, mas isso não funciona no Windows.

Como as tabelas de concessão padrão podem ser instaladas no Windows?

(Não, não estou procurando a resposta de que os resultados do Google estão cheios de como eles são instalados automaticamente no Windows, porque esse é o caso apenas da distribuição do instalador, não do pacote ZIP. Além disso, isso não ajuda depois O MySQL está instalado e o diretório de dados está danificado ou está sendo substituído ou algo assim.)

mysql windows
  • 4 4 respostas
  • 10808 Views

4 respostas

  • Voted
  1. Best Answer
    Synetech
    2011-03-07T17:18:39+08:002011-03-07T17:18:39+08:00

    Eu sabia que já havia enfrentado isso antes e consegui descobrir, então procurei em minhas unidades e encontrei um arquivo em lote que havia escrito da última vez.

    Para qualquer outra pessoa que tenha esse problema, o que você precisa fazer é executar o daemon do servidor com os --bootstrapparâmetros.

    Aqui está o script que usei para despejar todos os bancos de dados em um arquivo SQL e reimportá-los (ou seja, manualmente - e de forma inconveniente - implementando uma contraparte do MySQL para o vacuumcomando do SQLite).

    ::Start the server, change to the MySQL bin directory, and dump all databases
    net start MySQL
    cd       /d "%serverdir%\MySQL\bin"
    mysqldump  -uroot -p --all-tablespaces --all-databases --add-drop-database --add-drop-table --add-locks --comments --complete-insert --compress --create-options --events --routines --quick --quote-names --set-charset --triggers > %temp%\all.sql
    
    ::Stop the server and rename the data directory (as backup)
    net stop mysql
    ren         "%datadir%\MySQL"        MySQL_
    
    ::Delete data folder in MySQL directory, optionally copy old mysql tables
    rd    /s /q "%serverdir%\MySQL\data"
    md          "%serverdir%\MySQL\data"
    xcopy /s /e "%datadir%\MySQL_\mysql" "%serverdir%\MySQL\data"
    
    ::Bootstrap the server (creates grant tables if they don’t exist)
    mysqld --bootstrap
    
    ::Run server, optionally upgrade tables and move upgrade log to data directory
    start mysqld --skip-grant-tables
    mysql_upgrade --force
    move "%serverdir%\MySQL\bin\mysql_upgrade_info" "%serverdir%\MySQL\data"
    
    ::Import all databases, shutdown, delete logs, then move to old data dir
    mysql      -uroot -p < %temp%\all.sql
    mysqladmin -uroot -p shutdown
    md  "%datadir%\MySQL"
    del "%serverdir%\MySQL\data\ib_logfile?"
    xcopy /s /e "%serverdir%\MySQL\data\*" "%datadir%\MySQL"
    rd    /s /q "%serverdir%\MySQL\data"
    
    ::Start the server, if it works, then all should be well, so del
    net start mysql
    rd    /s /q "%datadir%\MySQL_"
    
    • 13
  2. RolandoMySQLDBA
    2011-03-07T12:33:53+08:002011-03-07T12:33:53+08:00

    Se você teve esse estranho dilema nas tabelas de concessão do MySQL para Windows, recomendo o seguinte:

    Etapa 1. Obtenha a distribuição do arquivo ZIP que não contém o instalador.

    Etapa 2. Descompacte seu conteúdo paraC:\MySQLZipStuff

    Etapa 3. Procure a pastaC:\MySQLZipStuff\data\mysql

    Etapa 4. Copie todos os arquivos C:\MySQLZipStuff\data\mysqlpara a pasta mysql do diretório de dados desejado.

    Passo 5.net start mysql

    Se você já possui a pasta mysql, pode fazer isso:

    Etapa 1. Edite my.iniadicionando esta linha na seção [mysqld]

    [mysqld]
    skip-grant-tables
    skip-networking
    

    Passo 2.net stop mysql

    Etapa 3.net start mysql

    Neste ponto, você pode apenas digitar 'mysql' e pronto. No entanto, você não pode executar comandos GRANT com tabelas de permissões desativadas.

    Etapa 4. Você terá que inserir um superusuário manualmente. Assim

    a)INSERT INTO mysql.user SET user='root',host='localhost';

    b)SELECT * FROM mysql.user WHERE user='root' AND host='localhost'\G

    Isso mostrará todas as colunas na tabela do usuário. Você terá que alterar manualmente cada coluna assim:

    UPDATE mysql.user SET select_priv='Y',insert_priv='Y',... WHERE user='root' AND host='localhost';

    c) Configure uma senha para root@localhost assim:

    UPDATE mysql.user SET password=PASSWORD('whateverpasswordyouwant')
    WHERE user='root' AND host='localhost';
    

    Etapa 5. Remova skip-grant-tablese skip-networkingdemy.ini

    Etapa 6.net stop mysql

    Passo 7.net start mysql

    Agora você pode logar no mysql como root usando 'whateverpasswordyouwant' como senha.

    De uma chance !!!

    • 5
  3. Imifos
    2015-10-29T03:39:17+08:002015-10-29T03:39:17+08:00

    PARA SUA INFORMAÇÃO,

    é --initializeagora, em vez do obsoleto--bootstrap


    NB. por uma questão de completude:

    Para executar isso usando uma conta sem privilégios:

    mysqld.exe --log_syslog=0 --console --standalone --initialize
    

    Em seguida, inicie o servidor:

    mysqld.exe   --log_syslog=0 --console --standalone
    
    • 3
  4. Alec Gorge
    2011-08-11T03:41:17+08:002011-08-11T03:41:17+08:00

    Para quem usa o XAMPP e enfrenta esse problema, o XAMPP vem com um backup dessas tabelas mysql padrão.

    Copie tudo nesta pasta C:\xampp\mysql\backup\mysqle cole em C:\xampp\mysql\data\mysql, substituindo tudo.

    Esteja avisado: os dados podem ser perdidos - não sei, fiz uma instalação limpa.

    • 2

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve