mysql运维
\G和;一样,都是语句终止符,有了\G就没必要再加;了。
查看连接详情:
show processlist;
Id是数据库连接id,即connectionId。Host格式是ip:port,是客户端的ip和端口,db是连接的库名。
如果多个服务共用一个mysql实例,而某些服务连接池设置有问题,连接数过多,sleep很长时间也不释放,导致其他服务获取不到数据库连接,则我们可以用kill ${ID}命令kill掉这些连接。
查看连接数:
show status like \'Threads%\';
show global status like \'Thread%\';
Threads_connected:这个数值指的是打开的连接数。
Threads_running:这个数值指的是激活的连接数,即有多少个连接正在执行DDL或者DML,这个数值一般远低于connected值。
查看mysql服务器设置的最大连接数:
show variables like \'%max_connections%\';
查看各种超时时间的设置:
show variables like \'%timeout%\';
interactive_timeout:单位是s,mysql服务端会主动断开空闲时间超过wait_timeout的交互式的数据库连接,默认是28800,即8小时。
wait_timeout:单位是s,mysql服务端会主动断开空闲时间超过wait_timeout的非交互式的数据库连接,默认是28800,即8小时。
数据库连接断开时,假如通过mysql命令行客户端查询,则再次执行查询时会显示:
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 249462814
查看表的引擎、近似行数:
show table status like \'表名\';
可以看出上表使用的存储引擎是InnoDB,行数是20,行的平均长度是819。如果使用的是MyISAM、MEMORY、ARCHIVE、BLACKHOLE引擎,那么这俩值都是精确值,如果是InnoDB引擎,那么这俩值有可能有较大误差。
查看上一条命令的告警:
show warnings;
mysql_find_rows、mysqlaccess、msql2mysql、mysqlslap、mysqlimport、mysqldump、mysqlcheck、mysqlbinlog、mysqladmin命令
使用mysqldump命令dump数据库表定义、表数据,如
dump test库所有表的表结构:
mysqldump -h127.0.0.1 -P3306 -uroot -p --no-data test > schema.sql
--no-data参数表示不dump数据,只dump表结构,可以简写为-d
dump test库t1表、t2表的表结构:
mysqldump -h127.0.0.1 -P3306 -uroot -p -d test t1 t2 > schema.sql
dump d1、d2库的表结构:
mysqldump -h127.0.0.1 -P3306 -uroot -p -d --databases d1 d2 > schema.sql
dump 所有库的表结构:
mysqldump -h127.0.0.1 -P3306 -uroot -p -d --all-databases > schema.sql
--all-databases参数可以简写成-A,注意mysql自带的information_schema库、performance_schema库和sys库不会dump,但是自带的mysql库会dump,其他业务库都会dump。