忘记MySql密码:
编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant
        
重启数据库服务,这样就可以进入数据库不用授权了 mysql -uroot
修改相应用户密码 use mysql;
update user setpassword=password(‘密码‘) where user=‘root‘;
flushprivileges; (刷新)
最后修改/etc/my.cnf 去掉 skip-grant, 重启mysql服务
查看root用户:
mysql -uroot -p密码 -e "use mysql;select user,host from user where user=‘root‘;"
mysq的命令历史:/root/.mysql_history
这样不安全,先删除这个文件,然后指向黑洞,就不会产生命令历史了
mysql:
-h:加ip
-S:可以使用指定的sock文件
-P:加端口号
-u:加用户名
-p:加密码
show databases;:显示数据库
use database;:选择数据库
show tables;:查看数据库中的表
查看都有哪些库  show databases;
查看某个库的表 use db; show tables; 
查看表的字段 desc  tb;
查看建表语句 show  create  table tb;
当前是哪个用户  select user();
当前库 select  database();
创建库 create  database  db1; 
创建表 create  table t1 (`id`int(4),  `name` char(40));  
查看数据库版本 select  version(); 
查看mysql状态 show  status;
修改mysql参数
show variables like ‘%timeout%‘;
set global table_open_cache= 128;
查看mysql队列
showprocesslist; (相当于ps)
创建普通用户并授权
grant all on *.* to user identified by ‘密码‘;
grant all on db1.* to ‘user‘@‘10.0.2.100‘ identified by ‘密码‘;
grant  all  on  db1.*  to ‘user3‘@‘%‘  identified  by  ‘密码‘;
更改密码 
UPDATE  mysql.user  SET  password=PASSWORD("newpwd")WHERE user=‘username‘ ;   
查询 
select count(*) from mysql.user;
select * from mysql.db;
select  *  from  mysql.db  where  host like  ‘10.0.%‘; 
插入 
update  db1.t1  set  name=‘*****‘ where  id=1;  
清空表 
truncate  table  db1.t1; 
删除表 
drop  table  db1.t1; 
删除数据库 
drop  database  db1; 
修复表 
repair table tb1 [use_frm];(通过/data/www/数据库名/这个文件下面的文件修复)
mysql的备份和恢复:
备份 mysqldump -uroot -p db > 1.sql
-d:只是备份创建表的语句
恢复 mysql  -uroot  -p  db  < 1.sql  
只备份一个表  mysqldump  -uroot  -p  dbtb1  >  2.sql
备份时指定字符集mysqldump  -uroot  -p  --default-character-set=utf8  db  > 1.sql
恢复也指定字符集 mysql  -uroot  -p  --default-character-set=utf8  db   <  1.sql
2015年5月8日
by:champly
原文:http://blog.csdn.net/champly/article/details/45585853