Mysql
 sql >> база данни >  >> RDS >> Mysql

Експортирайте MySQL или MariaDB база данни

Редовното архивиране на базата данни е една от решаващите стъпки след въвеждането на проекта. Честотата на архивиране може да бъде веднъж на ден или седмица. Ежедневното архивиране е предпочитано за приложения, в които промените в базата данни са по-чести. В случай на бази данни с висока достъпност трябва да се обмисли подходяща настройка на клъстер вместо вертикално мащабиране. Този урок обяснява използването на mysqldump команда за архивиране на базата данни. Същата команда може да бъде автоматизирана за правене на планирани архиви.

Бележки :Този урок обхваща само най-често срещаните опции, използвани с mysqldump команда. Можете също да се обърнете към официалната документация, за да разгледате всички възможни опции. Същите команди могат да се използват за архивиране както на сървърите на база данни MySQL, така и на MariaDB.

Локално архивиране

Резервно копие - Този раздел обяснява вземането на локално архивиране във файл чрез експортиране на единична или множество бази данни.

Разрешения - mysqldump изисква изброени по-долу привилегии за експортиране на базата данни. На потребителския акаунт, използван за експортиране на базата данни, трябва да бъдат присвоени подходящи привилегии.

  • SELECT - за изхвърляне на таблици
  • ПОКАЖИ ИЗГЛЕД - за изхвърляне на изгледи
  • TRIGGER - за изхвърляне на тригери
  • ЗАКЛЮЧВАНЕ НА ТАБЛИЦИ – в случай, че опцията --единична транзакция не се използва

Команда - По-долу е споменато използването на mysqldump команда за локално архивиране както за Windows, така и за Linux базирани системи, включително Ubuntu. Тройните точки означават, че могат да бъдат предоставени множество стойности.

# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>

Примерите за използване на обикновената команда са посочени по-долу. Тези примерни команди използват потребителския предприятие да правите резервни копия на базата данни предприятие . Не е необходимо да посочвате потребител и парола, в случай че потребителският акаунт използва auth_socket алгоритъм за влизане в MySQL сървъра. Потребителят на системата има директен достъп до базата данни. Можете да се обърнете към Как да използвате собствена парола с MySQL 5.7 и Как да инсталирате MySQL 8 в Ubuntu, за да научите повече за алгоритмите за пароли.

Бележки :Не е необходимо да използвате опцията -p, в случай че на потребителя не е зададена парола.

По-долу са посочени примерите за архивиране на една база данни с потребителско име, хост и порт. Паролата не трябва да се предоставя с тези команди с цел сигурност. Можете да посочите паролата за mysqldump в конфигурационния файл, който се счита за сигурна опция за cron работни места. Друга възможност е да използвате командата cat за използване на криптирана парола (подобно на това как Plesk използва), както е показано в примерите. Системата ще поиска парола, в случай че не е предоставена в командата. Тези команди могат да се използват или за експортиране на цялата база данни, или за единична или множество таблици.

# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql

# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql

# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql

# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql

# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql

# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql

По-долу са посочени примерите за архивиране на множество бази данни с потребителско име, хост и порт.

# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql

# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql

По-долу е споменат пример за архивиране на всички бази данни с потребителско име, хост и порт.

# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql

# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql

Потребителите на PowerShell в Windows ще се нуждаят от различна команда, както е посочено по-долу.

# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>

# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql

Гореспоменатите команди ще експортират избраната база данни и таблици към местоположението на файла, посочено в командата.

Архивиране на база данни

Този раздел обяснява пренасянето на архивирането на базата данни в друга база данни, използвана за целите на архивирането, използвайки Shell Pipes. Можем или да експортираме базата данни в локалния файл и след това да използваме този файл за импортиране в друга база данни или директно да експортираме в друга база данни с помощта на shell pipe.

Посочената по-долу команда може да се използва за експортиране на базата данни директно в друга база данни. Освен това се уверете, че имате достъп до двата сървъра, преди да изпълните командата.

# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup

# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise

Ето как можем да експортираме или архивираме база данни.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Множество ранга в една таблица

  2. Как да стартирате, рестартирате, проверявате състоянието и спирате MySQL сървъра

  3. Кога трябва да използвам MySQLi вместо MySQL?

  4. трябва да върне два набора данни с две различни клаузи where

  5. Сортиране на полето varchar числово в MySQL