MySQL常用的命令
查看MySQL进程状态
1 2 | show processlist; # 查看数据库的连接情况
show full processlist; # 查看正在执行的完整SQL语句,完整显示。
|
查看MySQL参数配置信息
1 2 3 4 5 6 7 8 | show variables; # 查看数据库的参数信息
例如当前进程查看binlog是否开启:
mysql -uroot -paaaaaa -e 'show variables;' |grep log_bin
log_bin ON
log_bin_trust_function_creators OFF
sql_log_bin ON
实时修改mysql的缓冲大小为32M配置
mysql -uroot -paaaaaa -e 'set global key_buffer_size=1024*1024*32' ;
|
查看MySQL数据库运行状态信息
1 2 | show status; # 查看当前会话的数据库状态信息
show global status; # 查看整个数据库运行状态信息,很重要,要分析并做好监控。
|
不登录数据库执行MySQL命令
通过echo实现(常见用法)
1 | echo 'show databases;' |mysql -uroot -paaaaaa
|
通过cat实现(此法用的不多)
1 2 3 | cat |mysql -uroot -p 'aaaaaa' << EOF
show databases;
EOF
|
提示:此法适合多行字符串比较多的时候。
通过mysql -e参数实现(常用)
1 | mysql -u root -p 'aaaaaa' -e "show databases;"
|
实例
mysql自动批量制作主从同步需要的语句
1 2 3 4 5 6 7 8 9 | cat |mysql -uroot -p 'aaaaaa' << EOF
CHANGE MASTER TO
MASTER_HOST= '192.168.1.101' ,
MASTER_PORT=3306,
MASTER_USER= 'rep' ,
MASTER_PASSWORD= 'rep' ,
MASTER_LOG_FILE= 'mysql-bin.00002'
MASTER_LOG_POS=429;
EOF
|
mysql线程中,“大海捞针”
平时登陆数据库show processlist;,发现结果经常超长,找自己要看的的比较困难,而且,SQL显示不全。
如果直接执行show full processlist那更是瞬间滚了N屏。找到有问题的SQL语句非常困难。
mysql -uroot -paaaaaa -e "show full processlist;"|grep -iv Sleep
过滤当前执行的SQL语句完整内容。