创建
mysql> create database <数据库名>;
mysql> show databases;
使用grant进行授权用户时不仅能够创建用户同时也可以创建表。查看
备份
- 基本:只导出数据结构
mysql> mysqldump -h<服务器IP> -u<用户> -p -d <数据库名> <表名> > <文件路径>;
-d 参数用来指定只导出表结构;
-t 参数用来指定只导出表数据;
两个都不写,既导出表结构又导出表数据;
不指定表名,则导出全库
- 备份所有(函数以及存储过程):
mysql> mysqldump -h<服务器IP> -u<用户> -p <数据库名> --default-character-set=utf8 --opt -Q -R > <文件路径>;
- mysqldump选项
| 选项 | 简写 | 作用 |
|---|---|---|
| –add-drop-databas | 在每个CREATE DATABASE语句之前添加DROP DATABASE语句 | |
| –add-drop-table | 在每个CREATE TABLE语句之前添加DROP TABLE语句 | |
| –add-drop-trigger | 在每个CREATE TRIGGER语句之前添加DROP TRIGGER语句 | |
| –add-locks | 用LOCK TABLES和UNLOCK TABLES语句围绕每个表转储 | |
| –all-databases | -A | 转储所有数据库中的所有表 |
| –allow-keywords | 允许创建作为关键字的列名称 | |
| –apply-slave-statements | 在CHANGE MASTER语句之前包括STOP SLAVE,在输出结束时启动START SLAVE | |
| –bind-address | 使用指定的网络接口连接到MySQL Server | |
| –character-sets-dir | 安装字符集的目录 | |
| –comments | -i | 将注释添加到转储文件 |
| –compact | 产生更紧凑的输出,此选项启用–skip-add-drop-table,–skip-add-locks,–skip-comments,–skip-disable-keys和–skip-set-charset选项。 | |
| –compatible | 与其他数据库系统或较旧的MySQL服务器兼容的生产输出 | |
| –complete-insert | -c | 使用包含列名称的完整INSERT语句 |
| –compress | -C | 压缩客户端和服务器之间发送的所有信息 |
| –create-options | 在CREATE TABLE语句中包括所有MySQL特定的表选项 | |
| –databases | -B | 将所有名称参数解释为数据库名称 |
| –debug | 写调试日志 | |
| –debug-check | 程序退出时打印调试信息 | |
| –debug-info | 程序退出时打印调试信息,内存和CPU统计信息 | |
| –default-auth | 验证插件使用 | |
| –default-character-set | 指定默认字符集 | |
| –defaults-extra-file | 除常规选项文件外,还可以读取命名选项文件 | |
| –defaults-file | 只读命名选项文件 | |
| –defaults-group-suffix | 选项组后缀值 | |
| –delayed-insert | 写入INSERT DELAYED语句,而不是INSERT语句 | |
| –delete-master-logs | 在主复制服务器上,执行转储操作后,删除二进制日志 | |
| –disable-keys | -K | 对于每个表,环绕INSERT语句声明禁用和启用键 |
| –dump-date | 如果给出–comments,则将转储日期包括为“转储完成”注释 | |
| –dump-slave | 包括CHANGE MASTER语句,其中列出了从属主的二进制日志坐标 | |
| –enable-cleartext-plugin | 启用明文身份验证插件 | |
| –events | -E | 从转储的数据库转储事件 |
| –extended-insert | -e | 使用多行INSERT语法 |
| –fields-enclosed-by | 该选项与–tab选项一起使用,与LOAD DATA INFILE的相应子句具有相同的含义 | |
| –fields-escaped-by | 该选项与–tab选项一起使用,与LOAD DATA INFILE的相应子句具有相同的含义 | |
| –fields-optionally-enclosed-by | 该选项与–tab选项一起使用,与LOAD DATA INFILE的相应子句具有相同的含义 | |
| –fields-terminated-by | 此选项与–tab选项一起使用,与LOAD DATA INFILE的相应子句具有相同的含义 | |
| –flush-logs | -F | 在开始转储之前刷新MySQL服务器日志文件 |
| –flush-privileges | 在转储mysql数据库后发出一个FLUSH PRIVILEGES语句 | |
| –force | -f | 在表转储期间发生SQL错误,仍继续执行 |
| –help | -? | 显示帮助消息并退出 |
| –hex-blob | 使用十六进制符号转储二进制列 | |
| –host | -h | 主机连接到(IP地址或主机名) |
| –ignore-table | 不要转储给定的表 | |
| –include-master-host-port | 包含MASTER_HOST/MASTER_PORT选项在CHANGE MASTER语句中生成–dump-slave –insert-ignore 写入INSERT IGNORE而不是INSERT语句 | |
| –lines-terminated-by | 此选项与–tab选项一起使用,与LOAD DATA INFILE的相应子句具有相同的含义 | |
| –lock-all-tables | -x | 锁定所有数据库中的所有表 |
| –lock-tables | -l | 在转储前锁定所有表 |
| –log-error | 将警告和错误附加到命名文件 | |
| –login-path | 从.mylogin.cnf读取登录路径选项 | |
| –master-data | 将二进制日志文件名称和位置写入输出 | |
| –max_allowed_packet | 要发送到服务器或从服务器接收的最大数据包长度 | |
| –net_buffer_length | TCP/IP和套接字通信的缓冲区大小 | |
| –no-autocommit | 在SET autocommit = 0和COMMIT语句中包含每个转储表的INSERT语句 | |
| –no-create-db | -n | 不要写入CREATE DATABASE语句 |
| –no-create-info | -t | 不要写入重新创建每个转储表的CREATE TABLE语句 |
| –no-data | -d | 不转储表内容 |
| –no-defaults | 读取任何选项文件 | |
| –no-set-names | -N | 与–skip-set-charset相同 |
| –no-tablespaces | -y | 不要在输出中写入任何CREATE LOGFILE GROUP或CREATE TABLESPACE语句 |
| –opt | 默认启用(–add-drop-table –add-locks –create-options –disable-keys –extended-insert –lock-tables –quick –set-charset)的简写。 | |
| –order-by-primary | 逐个转储按其主键排序的每个表的行或通过其第一个唯一索引 | |
| –password | -p | 连接到服务器时要使用的密码 |
| –pipe | -W | 在Windows上,使用命名管道连接到服务器 |
| –plugin-dir | 安装插件的目录 | |
| –port | -P | 用于连接的端口TCP/IP端口号 |
| –print-defaults | 打印默认选项 | |
| –protocol | 使用的连接协议(TCP|SOCKET|PIPE|MEMORY) | |
| –quick | -q | 一次从服务器一行检索表的行 |
| –quote-names | -Q | 在反引号字符中引用标识符 |
| –replace | 写入REPLACE语句而不是INSERT语句 | |
| –result-file | -r | 直接输出到给定的文件 |
| –routines | -R | 从转储的数据库转储存储的例程(过程和函数) |
| –secure-auth | 不要以旧的(4.1之前)格式向服务器发送密码 | |
| –set-charset | 将SET NAMES default_character_set添加到输出 | |
| –set-gtid-purged | 是否将SET @@ GLOBAL.GTID_PURGED添加到输出 | |
| –shared-memory-base-name | 用于共享内存连接的共享内存的名称 | |
| –single-transaction | 在从服务器转储数据之前发出BEGIN SQL语句 | |
| –skip-add-drop-table | 不要在每个CREATE TABLE语句之前添加DROP TABLE语句 | |
| –skip-add-locks | 不要添加锁 | |
| –skip-comments | 不要将注释添加到转储文件 | |
| –skip-compact | 不要产生更紧凑的输出 | |
| –skip-disable-keys | 不要禁用键 | |
| –skip-extended-insert | 关闭扩展插入 | |
| –skip-opt | 关闭–opt设置的选项 | |
| –skip-quick | 不要一次从服务器一行检索表的行 | |
| –skip-quote-names | 不要引用标识符 | |
| –skip-set-charset | 不要写SET NAMES语句 | |
| –skip-triggers | 不转储触发器 | |
| –skip-tz-utc | 关闭tz-utc | |
| –socket | -S | 要连接到本地主机,请使用Unix套接字文件 |
| –ssl | 启用安全连接 | |
| –ssl-ca | 包含可信SSL CA列表的文件路径 | |
| –ssl-capath | 包含PEM格式的受信任SSL CA证书的目录路径 | |
| –ssl-cert | 包含PEM格式的X509证书的文件路径 | |
| –ssl-cipher | 用于连接加密的允许密码列表 | |
| –ssl-crl | 包含证书吊销列表的文件的路径 | |
| –ssl-crlpath | 包含证书吊销列表文件的目录路径 | |
| –ssl-key | 包含PEM格式的X509密钥的文件路径 | |
| –ssl-mode | 与服务器连接的安全状态 | |
| –ssl-verify-server-cert | 验证服务器证书连接到服务器时使用的主机名的公共名称值 | |
| –tab | -T | 生成选项卡分隔的数据文件 |
| –tables | 覆盖–databases(或-B)选项 | |
| –triggers | 为每个转储表转储触发器 | |
| –tz-utc | 将SET TIME_ZONE ='+ 00:00'添加到转储文件 | |
| –user | -u | 用户连接到服务器时使用的用户名 |
| –verbose | -v | 详细模式 |
| –version | -V | 显示版本信息并退出 |
| –where | -w | 仅转储给定WHERE条件选择的行 |
| –xml | -X | 生成XML输出 |
导入
方式一:
mysql> mysql -u<用户名> -p<密码> -h<主机> <数据库名> < <文件路径>
方式二:登录后使用source导入
@> mysql -u<用户名> -p
mysql> source <文件路径>
方式三:向已存在的数据库导入数据
mysql -u<用户名> -p<密码> <数据库名> < <文件路径>
删除
mysql> drop database <数据库名>;
如果不确定存在该数据库:
mysql> drop database if exists <数据库名>;