创建
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 <数据库名>;