MySql操作之数据库篇

发布于 2936 字 6 分钟 0 MySql MySql

创建

mysql> create database <数据库名>;
mysql> show databases;

使用grant进行授权用户时不仅能够创建用户同时也可以创建表。查看

备份

  1. 基本:只导出数据结构
mysql> mysqldump -h<服务器IP> -u<用户> -p -d <数据库名> <表名> > <文件路径>;

-d 参数用来指定只导出表结构;

-t 参数用来指定只导出表数据;

两个都不写,既导出表结构又导出表数据;

不指定表名,则导出全库
  1. 备份所有(函数以及存储过程):
mysql> mysqldump -h<服务器IP> -u<用户> -p <数据库名> --default-character-set=utf8 --opt -Q -R > <文件路径>;
  1. 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输出

mysqldump文档

导入

方式一:

mysql> mysql -u<用户名> -p<密码> -h<主机> <数据库名> < <文件路径>

方式二:登录后使用source导入

@> mysql -u<用户名> -p
mysql> source <文件路径>

方式三:向已存在的数据库导入数据

mysql -u<用户名> -p<密码> <数据库名> < <文件路径>

删除

mysql> drop database <数据库名>;

如果不确定存在该数据库:

mysql> drop database if exists <数据库名>;