Czasy zmian eksportu danych MySQL
Mam skrypty do tworzenia kopii zapasowych i przywracania, których używam dla mojej bazy danych. Tabela ma pole znacznika czasu. Skrypt kopii zapasowej wygląda tak:
mysqldump -u user -ppass database --tab="../" --fields-terminated-by="|" --skip-comments table
Tworzy dwa pliki, table.sql i table.txt. Skrypt przywracania wygląda tak:
mysql -u user -ppass database < "../table.sql"
mysqlimport -u user -ppass --local --fields-terminated-by="|" database "../table.txt"
Jednak skrypt kopii zapasowej wysyła niewłaściwy czas - jest godzina za tym, co znajduje się w bazie danych - ale nie koryguje go podczas importowania.
Na przykład czas w jednym rzędzie był15:10:25 ale kiedy uruchamiany jest skrypt kopii zapasowej,14:10:25 jest wymieniony w tabeli.txt. Po uruchomieniu skryptu przywracania ma teraz ten sam wiersz14:10:25 jako czas w bazie danych. Jeśli ponownie wykonam kopię zapasową, mówi13:10:25! I tak dalej...
Nie mogę zrozumieć, dlaczego tak jest. Strefa czasowa wydaje się być ustawiona na „SYSTEM” (jestem na GMT). Plik table.sql ma kilka wierszy, w których podano strefy czasowe, może coś jest nie tak? Oto pełny plik:
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `news_article`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `news_article` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`alias` varchar(65) NOT NULL,
`author` tinyint(3) unsigned NOT NULL,
`category` tinyint(3) unsigned NOT NULL,
`posted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`opening` text NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `alias` (`alias`)
) ENGINE=MyISAM AUTO_INCREMENT=93 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;