mysqldump使用介绍

mysqldump命令

介绍:一个数据库备份程序

格式:mysqldump [options] [db_name [tbl_name ...]]描述:mysqldump客户端实用程序执行逻辑备份,生成一组SQL语句,可以执行这些语句来重现原始数据库对象定义和表数据。它转储一个或多个MySQL数据库以备份或传输到另一个SQL服务器。 mysqldump命令还可以生成CSV,其他分隔文本或XML格式的输出。

快速熟悉

  1. 导出结构:

  2. mysqldump -h127.0.0.1 -uroot -P3306 -p -d btmox>./btmox.sql

  3. mysqldump -h127.0.0.1 -uroot -P3306 -p -d mxhy>./mxhy.sql

  4. 导出结构和数据:

  5. mysqldump -h127.0.0.1 -uroot -P3306 -p btmox>./btmox-data.sql

  6. mysqldump -h127.0.0.1 -uroot -P3306 -p mxhy>./mxhy-data.sql

  7. 导入sql文件:

  8. mysql -h127.0.0.1 -uroot -P3306 -p btmox< ./btmox-data.sql

  9. mysql -h127.0.0.1  -uroot -P3306 -p mxhy< ./mxhy-data.sql

  10. 授权:

  11. grant all privileges on *.* to 'root'@'%' identified by '6NbAFQBE';

  12. grant all privileges on *.* to 'dbmanager'@'%' identified by '6NbAFQBE';

  13. FLUSH PRIVILEGES;

 ps:

楼主使用的mysql5.7 版本不可以直接明文输入密码,想想也有道理,防止黑客通过history历史记录就可以轻松获取你的数据库密码。

报错信息:mysqldump: [Warning] Using a password on the command line interface can be insecure.

-h127.0.01 不要写成 -hlocalhost

报错信息:mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect

部分常用的参数【Options】

       ·--host = host_name,-h host_name
           从给定主机上的MySQL服务器转储数据。默认主机是localhost。

       · -  password [=密码], -  p [密码]
           连接服务器时使用的密码。如果使用短选项表单(-p),则选项和密码之间不能有空格。如果
           你在命令行上的--password或-p选项后面省略了密码值,mysqldump会提示输入密码值。

           在命令行上指定密码应该被认为是不安全的。请参见第6.1.2.1节“密码安全的最终用户指南”。你可以使用
           选项文件,以避免在命令行上提供密码。

       ·--port = port_num,-P port_num
           用于连接的TCP / IP端口号。

       ·--user = user_name,-u user_name
           连接到服务器时使用的MySQL用户名。

               您还可以使用--var_name = value语法设置以下变量:
       ·--all-databases,-A
            转储所有数据库中的所有表。 这与使用--databases选项并命名命令行上的所有数据库相同。

      ·--databases,-B
            转储几个数据库。 通常,mysqldump将命令行上的第一个名称参数视为数据库名称,将后续名称视为表名称。同
            此选项,它将所有名称参数视为数据库名称。 CREATE DATABASE和USE语句包含在每个新数据库之前的输出中。

            此选项可用于转储INFORMATION_SCHEMA和performace_schema数据库,这些数据库通常即使使用--all-databases选项也不会转储。
            
       ·--ignore-table = db_name.tbl_name
            不要转储给定的表,必须使用数据库和表名来指定该表。 要忽略多个表,请多次使用此选项。
            此选项也可用于忽略视图。

      ·--no-data,-d
            不要写任何表行信息(即不要转储表内容)。 如果要仅转储CREATE TABLE语句,这将非常有用
            table(例如,通过加载转储文件来创建表的空副本)

     ps: 
                     另一种重新加载转储文件的方法:
           shell>  mysql -e "source /path-to-backup/backup-file.sql" db_name

                     可以使用一个命令转储多个数据库:
           shell> mysqldump --databases db_name1 [db_name2 ...]> my_databases.sql

                要转储所有数据库,请使用--all-databases选项:
           shell> mysqldump --all-databases> all_databases.sql

                mysqldump对于通过将数据从一个MySQL服务器复制到另一个MySQL服务器来填充数据库非常有用:
           shell> mysqldump --opt db_name | mysql --host = remote_host -C db_name

 

你可能感兴趣的:(Linux,mysql)