Excluiu automaticamente a tabela de banco de dados MySQL ao reiniciar o servidor

0

Eu instalei o servidor LAMP no meu Ubuntu 12.04 Server PC. Eu mudei o local de armazenamento do banco de dados usando my.cnf. Depois que eu mudei a localização, está funcionando bem. Mas se eu reiniciar meu banco de dados MySQL é excluído e meu banco de dados mostra vazio. Eu não sei por que isso aconteceu, depois que eu importei os dados mudos para o meu banco de dados criado anteriormente, ele mostra o seguinte erro:

CREATE TABLE IF NOT EXISTS  'admin' (

 'usna' VARCHAR( 100 ) NOT NULL ,
 'pas' VARCHAR( 100 ) NOT NULL
) ENGINE = INNODB DEFAULT CHARSET = latin1;

MySQL said: Documentation

#1146 - Table 'admin_db.admin' doesn't exist

... mas se criar um novo banco de dados e depois importar os dados novamente, ele funcionará bem. O meu arquivo my.cnf está errado? Por favor, me diga como consertar isso.

Arquivo MY.cnf

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /media/sdc1/Mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
default-storage-engine=InnoDB
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 127.0.0.1
#
# * Fine Tuning
#
key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit   = 1M
query_cache_size        = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries   = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id      = 1
#log_bin            = /var/log/mysql/mysql-bin.log
expire_logs_days    = 10
max_binlog_size         = 100M
#binlog_do_db       = include_database_name
#binlog_ignore_db   = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /media/sdc1/Mysql
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet  = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer      = 16M

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
    
por Kevin - Dhinesh babu 02.09.2013 / 08:20

2 respostas

0

Acabei de me deparar com um problema semelhante a este. Agora, não tenho certeza se isso resolverá seu problema, mas ajudou o meu! Basicamente o que aconteceu na minha situação foi: Quando eu fui reiniciar o meu Ubuntu Server, eu iria para meus bancos de dados apenas para descobrir que os dados estavam faltando .. mesmo que eu recentemente tivesse adicionado alguns para ele. Então fiz algumas pesquisas e, para cada Tabela, cliquei em Operações (misturado com as guias em cima) e notei uma propriedade chamada Storage Engine. Foi inicialmente definido para memória, que parecia fora de mim. Então, verifiquei meus outros bancos de dados e percebi que estavam todos configurados para o InnoDB. Então mudei as tabelas, no banco de dados com o qual eu estava tendo problemas, para o InnoDB e reiniciei o meu servidor para testá-los. Os dados foram salvos sem problemas!

Novamente, não tenho certeza se isso responde à sua pergunta, mas espero que ajude alguém a procurar na internet por uma solução para o mesmo problema que eu estava enfrentando.

    
por PRovneyko 16.10.2013 / 04:45
0

Eu tive um problema semelhante: sem problemas na importação de despejos, mas em 3 servidores Ubuntu 14.04 MySQL, os bancos de dados desapareceram após a reinicialização. Durante a configuração inicial, mudei my.cnf para apontar para um novo local de banco de dados, desativei o MySQL no Apparmor e usei 'sudo /etc/init.d/mysql restart' para atualizar o MySQL.

O problema é que /etc/init.d/mysql não pára mais corretamente o mysqld - você precisa usar 'sudo restart mysql' para usar o Upstart ao invés do init. Acontece que todos os dados do banco de dados estavam se acumulando no local padrão / var / lib / mysql. Depois que o servidor foi reinicializado, o my.cnf finalmente começou a apontar para o novo local pela primeira vez, que estava vazio e nunca foi preenchido.

    
por Landon Thomas 17.12.2014 / 22:34