MySQL常用命令

优质
小牛编辑
126浏览
2023-12-01

查看MySQL进程状态

show processlist; # 查看数据库的连接情况
show full processlist; # 查看正在执行的完整SQL语句,完整显示。

查看MySQL参数配置信息

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数据库运行状态信息

show status; # 查看当前会话的数据库状态信息
show global status; # 查看整个数据库运行状态信息,很重要,要分析并做好监控。

不登录数据库执行MySQL命令

  1. 通过echo实现(常见用法)
echo 'show databases;'|mysql -uroot -paaaaaa
  1. 通过cat实现(此法用的不多)
cat |mysql -uroot -p'aaaaaa' << EOF
show databases;
EOF

提示:此法适合多行字符串比较多的时候。

  1. 通过mysql -e参数实现(常用)
mysql -u root -p'aaaaaa' -e "show databases;"

实例

mysql自动批量制作主从同步需要的语句

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语句完整内容。