文字
分享

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命令

  1. 通过echo实现(常见用法)

1

echo 'show databases;'|mysql -uroot -paaaaaa

  1. 通过cat实现(此法用的不多)

1

2

3

cat |mysql -uroot -p'aaaaaa' << EOF

show databases;

EOF

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

  1. 通过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语句完整内容。