Резервное копирование базы данных в MySql - PullRequest
0 голосов
/ 22 мая 2019

Я сейчас учусь sql. Я использую mysql 8.0.16 cli в Windows 10 cmd, и я вошел в систему как пользователь root mysql и запускаю cmd от имени администратора. Я хотел бы сделать резервную копию моей только что созданной базы данных.

Это мой вывод ШОУ ДАННЫХ:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| learnsql           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Теперь я пытаюсь сделать следующее:

backup database learnsql to disk = 'E:\backup.bak';

Вывод, который я получаю:

mysql> backup database learnsql to disk = 'E:\backup.bak';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'backup database learnsql to disk = 'E:\backup.bak'' at line 1

Указанный мною путь действителен. Я предполагаю, что MySql не поддерживает команду «backup database», но не должно ли это быть в стандарте Sql?

РЕДАКТИРОВАТЬ: я знаю, что я могу использовать sqldump, чтобы сделать то же самое, но я учусь и очень хотел бы понять, почему эта конкретная команда является недействительной.

1 Ответ

1 голос
/ 22 мая 2019

Стандарт SQL - это большой академический документ, и, насколько мне известно, не доступен бесплатно в Интернете .

Что должно и не должно быть вСтандарт - сложная тема, и многие фактические базы данных не реализуют стандарт в течение многих лет (или вообще).Большая часть энергии для стандарта уходит на поддержку функций для разработки и проектирования программного обеспечения, таких как поддержка отображения объектов, временных и пространственных характеристик;резервное копирование и т. д. - это в основном эксплуатационные проблемы.Резервные копии, скорее всего, также будут зависеть от конкретной реализации, и стандарт пытается не зависеть от конкретных деталей реализации.

Так что нет, команда «резервное копирование» не является частью стандарта и, вероятно, не должнабыть.Каждый механизм базы данных имеет свой собственный способ сделать это, и он имеет тенденцию быть определенным для операционной системы и базового механизма базы данных.

...