1.设置命令行提示
mysql -uroot -p --prompt="u@h:d :m:s>"
在my.cnf配置文件里永久配置
prompt=mysql(u@h:d)>
default-character-set=utf8
2.修改密码
mysql -u root -p登陆之后使用下面命令修改
set password for "root"@"localhost"=password("root");
alter user "tony"@"%" identified by "123456";
3.查看mysql加载my.cnf的顺序
/usr/sbin/mysqld --verbose --help|grep -A 1 "Default options"
mysql --help|grep "my.cnf"
4.查看软件版本
mysqladmin -uroot -proot version
5.查看数据库表锁状态
show status like "table%";
6.查看表的信息
desc test;
show create table test G;
7.查看帮助文档
? contents;
? data types;
? int;
? show;
? create table;
8.查看表状态信息
show table status like "emp" G;
9.查看索引信息
show index from emp G;
10.tcpdump工具查找TPS突增问题
tcpdump -i eth0 -A -s 3000 port 3306 > sql.log
注意,我们在使用tcpdump的时候加了-A参数,这样就可以把sql语句都显示出来了
大约执行1分钟后,同时停止执行。这个时候,sql.log文件中已经包含了这段时间执行的所有sql语句。示例如下:
$grep "update" ./sql.log | head
....5u.vD....update session_table set expire=’2014-12-12 20:01:23’ where sess_id = ‘demostring123’ limit 1
既然我们现在已经有了所有执行的sql语句,我们就可以很容易的通过使用grep, wc 等命令分析出是那些sql语句执行次数猛增了。
11.杀掉连接
select concat("KILL ",id,";") from information_schema.processlist where user="root";
12.检查复制状态
show master statusG
show slave statusG
13.查看bin log的内容
show binlog events in "mysql-bin.000604" from 294959 limit 10;
mysqlbinlog --start-position=654 --stop-position=1170 mysql-relay-bin.000002
14.删除BINARY LOG,将mysql-bin.000007之前的日志全部删除
PURGE BINARY LOGS TO "mysql-bin.000007"
15.添加字段
SET SESSION SQL_LOG_BIN=0 语句禁止将自己的语句写入mysql二进制日志文件 ,先在master上session级别关闭sql_log_bin,操作完成之后,在slave上做同样的操作
set session sql_log_bin=0;
alter table test add id char(2) not null default "";
set session sql_log_bin=1;
16.刷新binlog日志
flush logs