一mysqldump

这个命令是逻辑导出,导出的内容方便查看和编辑,如果要备份大量数据,最好选择物理导出命令

mysqldump的命令行参数也可以在配置文件的[mysqldump][client]组使用,和mysql命令行参数一样的就不列举了

mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql

  • dbname参数表示数据库的名称;
  • table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
  • BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库备份成一个后缀名为sql的文件;
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
加上了--databases选项,然后后面跟多个数据库
mysqldump -u username -p -all-databases > BackupName.sql
备份所有数据库
mysqldump -u 用户名 -p -d –add-drop-table 数据库名 > 导出的文件名
备份创建表语句包含删表语句

mysqldump -u username -p dbname < filename.sql//导入数据库

--add-drop-database //添加删除数据库语句在创建数据库之前
--add-drop-table
--add-drop-trigger
-n // 不导出创建数据库语句--no-create-db
-t // 不导出创建表语句--no-create-info
--replace //用replace语句替换insert语句
--allow-keywords //在列名前添加表名,作为关键字
-i //添加版本等信息--comments,--skip-comments
--dump-date //包含日期 --skip-dump-date
--log-error //记录警告和错误到指定文件
--set-charset //输出设置字符集语句 --skip-set-charset,--no-set-names -N
--compact //产生更紧凑的输出--skip-compact
--compatible //产生的输出尽可能兼容其它数据库服务器
-c //insert语句包含列名 --complete-insert
--create-options //包含所有创建表选项
--hex-blob //用16进制输出二进制列数据
-Q //数据库,表,列名用单引号或双引号括起来 --quote-names
-r //输出到指定的文件 --result-file
-T //输出数据到tab分割的文本格式txt文件--tab
--tz-utc //即使两个服务器在不同的时区,TIMESTAMP列的值也不会有问题--skip-tz-utc
-A //导出所有数据库--all-databases
-B //导出几个数据库--databases
-E //导出定时事件--event导出时不包含创建和修改的时间,所以恢复时创建时间就是恢复的时间,可以到处mysql.event表包含所有信息
--ignore-error //忽略指定的错误
--ignore-table //不导出指定的表
-d //不导出表数据,只导出表结构–-no-data
-R //导出存储过程和自定义函数–-routines导出时不包含创建和修改的时间,所以恢复时创建时间就是恢复的时间,可以到处mysql.proc表包含所有信息
--tables //导出的表名
--triggers //导出的触发器名字
-w //导出时的where条件 --where
--add-locks //导出的表保护lock tables和unlock tables语句
-F //开始导出前刷新服务器日志文件--flush-logs
-x //导出前锁所有表--lock-all-tables 
-l //导出前锁表 --lock-tables --skip-lock-tables
--no-autocommit //是否包含SET autocommit = 0 和 COMMIT
--order-by-primary //导出时是否按主键排序
--single-transaction //导出前发送START TRANSACTION语句到服务器,设置数据库事务级别是REPEATABLE READ
-q //一次从服务器检索一行数据--quick
--opt //使导出更快--skip-opt
-K //数据插入后再创建索引--disable-keys
-e //用多行语法写insert语句--extended-insert
--insert-ignore //用insert ignore语句替换insert语句
--safe-updates //--i-am-a-dummy更新或删除语句必须有where条件限制
--default-auth //默认客户端验证插件
--plugin-dir //寻找客户端验证插件的目录
--login-path //登陆验证用配置文件
--enable-cleartext-plugin //使用mysql_clear_password验证插件

--skip-grant-tables //跳过权限表
!include /home/mydir/myopt.cnf //保护其它配置文件
var_name
value

mysql mydb  -h主机地址 -u root -pnewpassword //连接数据库

exit/quit //退出数据库连接

mysql < batch-file > mysql.out //执行batch-file文件里面的sql语句,结果输出到mysql.out

mysql> source filename;//在mysql命令行加载并执行文件

执行脚本文件的时候,可以添加注释SELECT '<info_to_display>' AS ' ';结果输出为<info_to_display>

 

mysql命令行

?         (\?) 显示所有mysql命令
clear     (\c) 清除当前输入信息
connect   (\r) 重新连接服务器 可选参数是 db and host.
delimiter (\d) sql语句分隔符.默认是;
edit      (\e) 用 $EDITOR编辑器输入命令.仅Linux有效
ego       (\G) 发送命令到服务器,垂直显示结果.
exit      (\q) 退出mysql 和quit一样.
go        (\g) 发送命令到服务器.
help      (\h) 显示所有mysql命令.
nopager   (\n) 禁止pager输出, 输出到控制台.
notee     (\t) 不输出到文件.
pager     (\P) 设置pager输出命令名称
print     (\p) 仅输出当前sql语句,不执行.
prompt    (\R) 修改mysql命令行提示符.
quit      (\q) 退出mysql.
rehash    (\#) 自动补全
source    (\.) 执行sql脚本
status    (\s) 获取服务器状态信息
system    (\!) 执行系统shell命令,仅Linux有效
tee       (\T) 设置输出结果到文件
use       (\u) 改变当前数据库.
charset   (\C) 修改字符集.
warnings  (\W) 显示警告.
nowarning (\w) 不显示警告.
resetconnection(\x) 清除会话状态信息
三mysqladmin
create db_name //创建数据库
drop db_name //删除数据库
debug //让服务器写调试信息到错误日志
extended-status //显示服务器状态变量和值
flush-hosts //刷新主机缓存信息
flush-logs [log_type..] //刷新日志binary,engine,error,general,relay,slow
flush-privileges //重新加载权限表reload
flush-status //清除状态变量
flush-tables //刷新所有表
flush-threads //刷新所有线程缓存
kill id,id //杀死服务器线程
password new_password //修改密码
ping //检查服务器是否在运行
processlist //显示活动的服务器线程列表
refresh //刷新所有表并且关闭,打开日志文件
shutdown //关闭服务器
start-slave //开启从服务器
status //显示服务器状态信息
stop-slave //停止从服务器
variables //显示服务器系统变量和值
version //服务器版本
mysqladmin status命令显示下列信息
Uptime //服务器启动以来经过的秒数
Threads //活动的客户连接线程数
Questions //服务器启动以来的查询数
Slow queries //超过long_query_time秒数的查询数
Opens //服务器已经打开的表的个数
Flush tables //服务器已经运行的Flush-*,refresh,reload的命令次数
Open tables //当前打开的表的个数

命令行参数,也可以从配置文件的[mysqladimn][client]组读取,和mysql命令行参数一样的就不列举了
-c N //重复执行的命令次数 --count=N
-i delay //重复执行命令的间隙 --sleep=delay
-# [debug_options] //写调试日志--debug[=debug_options]
-r //当使用--sleep选项时,显示当前和前一个值的不同点--relative ,和extended-status一起使用
var_name
value
shutdown_timeout //关闭服务器超时时间
innodb
crc32
none
innodb
crc32
none



cat t1.ibd | innochecksum --write=crc32 - > a.ibd



innochecksum ./data/test/*.ibd //only linux



innochecksum ./data/test/t*.ibd //only linux



innochecksum ./data/*/*.ibd //only linux



./bin/mysqld --no-defaults --innodb-data-file-path="ibdata1:10M;ibdata2:10M;ibdata3:10M:autoextend"



cat ibdata* | innochecksum -



my_print_defaults 从配置文件显示某个组的配置信息
my_print_defaults mysqld

perror [options] errorcode ...显示错误号对应的描述信息
perror 13 64
resolveip [options] host_name|ip_addr 解析主机名到IP或相反

九perror解释错误代码
perror [options] errorcode
-I //-? --help --info 显示帮助信息
-s //--silent 静默模式
-v //--verbose 详细模式
-V //--version 显示版本信息

十resolveip解析主机和ip
resolveip [options] [host_name|ip-addr]