1、mysql命令常用参数
1、--auto-rehash (tab键自动补全,表名及表字段)
# mysql -u root --auto-rehash
# vim my.cnf
[mysql]
auto-rehash
2、-B (不要使用历史记录文件,禁用交互式行为)
# mysql -uroot -D test -e "show tables;" -B
3、-E (垂直打印查询行的输出)
# mysql -uroot -D test -e "show tables;" -E
4、-D (指定进入的库)
# mysql -u root -D test
5、--default-character-set (设置默认字符集)
# mysql -u root -D test --default-character-set=utf8
6、--delimiter(设置mysql命令结束符)
# mysql -u root -D test --delimiter=\| #默认的结束符是分号,设置成竖杠
7、-e (免交互,执行sql语句)
# mysql -uroot -D bak_test -e "show tables;"
8、-f (忽略mysql的错误,继续向下执行)
# mysql -uroot bak_test -e "show databaseds;show tables;" -f
9、-N (不显示列名)
# mysql -uroot bak_test -e "select * from user" -N
10、-p (用密码登陆)
# mysql -u root -o test -p -S /tmp/mysql.sock
11、-h (指定IP)
# mysql -u root -h 192.168.1.102
12、-H (生成HTML输出)
# mysql -uroot bak_test -e "show tables " -H
13、-X (生成XML输出)
# mysql -uroot bak_test -e "show tables " -X
14、--prompt (设置mysql提示符==mysql<)
# mysql -u root --prompt=\^\_\^
15、-S (指定socket文件,多实例常用)
# mysql -u root -D test -S /tmp/mysql.sock
16、-v (输出mysql执行的语句)
# mysql -u root -D test -e "show tables;" -v
17、-P (指定端口)
# mysql -u root -o test -P 13306 -S /tmp/mysql.sock
18、mysql交互模式常用指令:
help (\h) 获取帮助
connect (\r) 重新连接
delimiter (\d) 设置服务端语句的结束符,默认是分号
ego (\G) 发送指令到服务器,等于语句结束符,但是以列的方式显示
exit (\q) 退出mysql客户端
go (\g) 发送指令到服务器,等于语句结束符
quit (\q) 退出Mysql
source (\.) 执行系统上的sql脚本
status (\s) 获取MySQL服务的基本信息
system (\!) 执行shell命令
tee (\T) 分流输出
use (\u) 选定使用的数据库
charset (\C) 切换字符集
warnings (\W) 语句的警告信息显示出来
nowarning (\w) 不显示语句的警告信息
19、mysql交互模式快捷键:
Ctrl+w:删除光标之前的单词
Ctrl+u:删除光标之前所有内容
Ctrl+y:粘贴此前删除的内容
Ctrl+a:移动光标行首
Ctrl+e:移动光标行尾
2、mysqladmin常用连接参数
1、参数选项
-u, --user=name #指定用户名
-h, --host=name #指定主机名
-p, --password #指定密码
-P, --port #指定端口
-c number #自动运行次数统计,必须和 -i 一起使用
-i number #间隔多长时间重复执行
2、常用命令参数
create
drop
debug #打开调试日志并记录于error log中
status #输出服务器的基本状态信息
--sleep: #status的子参数,多久刷新一次
--count: #status的子参数,显示的批次
extended-status #显示扩展的状态信息,等于: SHOW GLOBAL STATUS;
flush-hosts #清空主机相关的缓存(DNS解析缓存、连接错误次数过多而被拒绝的主机)
flush-logs #刷新日志,重新生成新日志文件
flush-privileges #刷新配置
flush-status #重置状态变量
flush-tables #关闭当前打开的表文件句柄
flush-threads #清空线程缓存池
kill #杀死指定的线程
password #修改用户的密码
ping #探测服务器是否在线
processlist #显示mysql线程列表
reload #相当于flush-privileges
refresh #相当于同时使用flush-logs和flush-hosts
shutdown #关闭mysql服务
start-slave #启动从服务器线程
stop-slave #关闭从服务器线程
variables #输出mysqld的服务器变量
version #显示mysql服务器版本
3、示例
1) 两秒查看一次服务器的状态,共重复5次
# mysqladmin -uroot -p -i 2 -c 5 status
2) 查看服务器的状况
# mysqladmin -uroot -p status
3) 修改root 密码:
# mysqladmin -u root -p原密码 password 'newpassword'
4) 检查mysqlserver是否可用:
# mysqladmin -uroot -p ping
5) 查询服务器的版本
# mysqladmin -uroot -p version
6) 查看服务器状态的当前值:
# mysqladmin -uroot -p extended-status
7) 查询服务器系统变量值:
# mysqladmin -uroot -p variables
8) 显示服务器所有运行的进程:
# mysqladmin -uroot -p processlist
# mysqladmin -uroot -p -i 1 processlist #每秒刷新一次
9) 创建数据库
# mysqladmin -uroot -p create new_daba
10) 删除数据库 daba-test
# mysqladmin -uroot -p drop new_daba
11) 重载权限信息
# mysqladmin -uroot -p reload
12) 刷新所有表缓存,并关闭和打开log
# mysqladmin -uroot -p refresh
13) 使用安全模式关闭数据库
# mysqladmin -uroot -p shutdown
14) 刷新命令
# mysqladmin -u root -p flush-hosts
# mysqladmin -u root -p flush-logs
# mysqladmin -u root -p flush-privileges
# mysqladmin -u root -p flush-status
# mysqladmin -u root -p flush-tables
# mysqladmin -u root -p flush-threads
15) 执行kill 进程:
# mysqladmin -uroot -p processlist
# mysqladmin -uroot -p kill 10086
16) 停止和启动从库
# mysqladmin -u root -p stop-slave
# mysqladmin -u root -p start-slave
17) 同时执行多个命令
# mysqladmin -u root -p process status version
3、mysqlshow 常见参数
1、显示所有数据库
# mysqlshow -uroot -p
2、显示数据库下所有表
# mysqlshow -uroot -p daba-test
3、统计库下表列的汇总
# mysqlshow -uroot -p daba-test -v
4、统计库下表的列数和行数
# mysqlshow -uroot -p daba-test -v -v
4、mysqlbinlog 常见参数
1、-d (只列出指定数据库)
# mysqlbinlog mysql.000007 -d db1
2、-o (跳过前N个条目)
# mysqlbinlog mysql.000007 -o 3 #忽略前三个操作
3、-r (输出到指定的文件)
# mysqlbinlog mysql.000007 -o 3 -r /tmp/test.sql
4、-s (只显示sql语句,不显示其它信息)
# mysqlbinlog mysql.000007 -s
5、--set-charset=char-name(字符集)
# mysqlbinlog mysql.000007 --set-charset=utf8
6、--start-datetime=date --stop-datetime=date (指定日期内的所有日志)
# mysqlbinlog mysql.000007 --start-datetime='2015/07/17 11:06:14' --stop-datetime='2015/07/17 11:12:20'
7、--start-position=# --stop-position=# (指定位置点内的所有日志)
# mysqlbinlog mysql.000007 --start-position=20 --stop-position=80
8、--server-id=# (指定server_id的binlog日志)
# mysqlbinlog mysql.000007 --server-id= 2
5、mysqldump 常用参数
1、-A ,--all-databases(导出全部数据库)
# mysqldump -h127.0.0.1 -uroot -p -A > all_db.sql
2、-Y,--all-tablespaces(导出全部表空间)
# mysqldump -h127.0.0.1 -uroot -p -A -Y > all_db.sql
3、--add-drop-database(创建数据库之前添加drop语句)
# mysqldump -h127.0.0.1 -uroot -p -A --add-drop-database > all_db.sql
4、--add-drop-table(创建表之前添加drop表语句,默认打开状态)
# mysqldump -h127.0.0.1 -uroot -p -A (默认添加drop语句)
# mysqldump -h127.0.0.1 -uroot -p -A –skip-add-drop-table (取消drop语句)
5、--add-locks(表导出之前增加锁表,完成后解锁,默认打开状态)
# mysqldump -h127.0.0.1 -uroot -p -A (默认添加LOCK语句)
# mysqldump -h127.0.0.1 -uroot -p -A –skip-add-locks (取消LOCK语句)
6、--apply-slave-statements(在'CHANGE MASTER'前添加'STOP SLAVE',导出的最后添加'START SLAVE'
# mysqldump -h127.0.0.1 -uroot -p -A --apply-slave-statements
7、--character-sets-dir(字符集文件的目录)
# mysqldump -h127.0.0.1 -uroot -p -A --character-sets-dir=/data/mysql/share/charsets
8、-C,--compress(在客户端和服务器之间启用压缩)
# mysqldump -h127.0.0.1 -uroot -p -A --compress
9、-B,--databases(导出多个数据库)
# mysqldump -h127.0.0.1 -uroot -p -B test mysql
10、--default-character-set(设置默认字符集,默认utf8)
# mysqldump -h127.0.0.1 -uroot -p -A --default-character-set=latin1
11、--dump-slave(在从库端用,把binlog位置点和文件名,追加到sql文件中)
设置为1,CHANGE MASTER命令追加到文件中
设置为2,CHANGE MASTER命令以注释追加到文件中
该选项会自动锁表,完成后解锁,一般配合--single-transaction使用,默认为0
# mysqldump -h127.0.0.1 -uroot -p -A --dump-slave=1
# mysqldump -h127.0.0.1 -uroot -p -A --dump-slave=2
12、-flush-logs(导出之前刷新日志,若导出多个库,会刷新多次,除锁表,锁表刷新一次)
# mysqldump -h127.0.0.1 -uroot -p -A --flush-logs
13、-flush-privileges(刷新权限,导出前刷新权限,保证正确恢复)
# mysqldump -h127.0.0.1 -uroot -p -A --flush-privileges
14、--ignore-table(不导出指定表,忽略某个表,多个表,重复多次)
# mysqldump -h127.0.0.1 -uroot -p -A --ignore-table=mysql.user
15、--include-master-host-port('CHANGE MASTER'语句中增加'MASTER_HOST,MASTER_PORT'
# mysqldump -h127.0.0.1 -uroot -p -A --include-master-host-port
16、-x,--lock-all-tables(锁定所有表,保证数据的一致性,全局读锁)
# mysqldump -h127.0.0.1 -uroot -p -A -x
17、-l,--lock-tables(导出前,锁表,若导出多个库,分别锁表,不能保证逻辑一致性)
# mysqldump -h127.0.0.1 -uroot -p -A -l
18、--master-data(在主库端用,把binlog位置点和文件名,追加到sql文件中)
设置为1,CHANGE MASTER命令追加到文件中
设置为2,CHANGE MASTER命令以注释追加到文件中
该选项会自动锁表,完成后解锁,一般配合--single-transaction使用,默认为0
# mysqldump -h127.0.0.1 -uroot -p -A --master-data=1;
# mysqldump -h127.0.0.1 -uroot -p -A --master-data=2;
19、-n,--no-create-db(只导出数据,不添加CREATE DATABASE 语句)
# mysqldump -h127.0.0.1 -uroot -p -A --no-create-db
20、-t,--no-create-info(只导出数据,不添加CREATE TABLE 语句)
# mysqldump -h127.0.0.1 -uroot -p -A --no-create-info
21、-d,--no-data(不导出数据,只导出表结构)
# mysqldump -h127.0.0.1 -uroot -p -A -d
22、-P,--port(指定端口号)
# mysqldump -h127.0.0.1 -uroot -p -A -P 3306
23、--protocol(连接协议,包括:tcp,socket,pipe,memory)
# mysqldump -h127.0.0.1 -uroot -p -A --protocol=tcp
24、-r,--result-file(直接输出到指定文件中,常用Windows系统,不支持重定向>的系统)
# mysqldump -h127.0.0.1 -uroot -p -A --result-file=/tmp/mysqldump_result_file.txt
25、-R,--routines(导出存储过程以及自定义函数)
# mysqldump -h127.0.0.1 -uroot -p -A --routines
26、--single-transaction(对innodb的表进行热备,快照备份,不锁表)
# mysqldump -h127.0.0.1 -uroot -p -A --single-transaction
27、--dump-date(导出时间,默认打开状态)
# mysqldump -h127.0.0.1 -uroot -p -A
# mysqldump -h127.0.0.1 -uroot -p -A --skip-dump-date #不导出时间
28、-S,--socket(指定socket文件)
# mysqldump -h127.0.0.1 -uroot -p -A --socket=/tmp/mysqld.sock
29、--tables(导出指定的表)
# mysqldump -h127.0.0.1 -uroot -p -B test --tables test
30、--tz-utc(设置时区SET TIME_ZONE='+00:00',保证不同时区导出的TIMESTAMP数据的准确性)
# mysqldump -h127.0.0.1 -uroot -p -A --tz-utc
31、-v,--verbose(详细模式)
# mysqldump -h127.0.0.1 -uroot -p -e 'show databases' -v
32、-V,--version(显示版本)
# mysqldump -V
33、-E,--events(导出事件)
# mysqldump -h127.0.0.1 -uroot -p -A --events