mysql 技巧

1、如果想对某个表的某个字段授权,可以先为这个表中某个字段进行视图创建,然后授权
  • >create view v_Procuct  as select sn,name from Product;  
  • >GRANT UPDATE ON `zjzc`.`v_Procuct` TO 'zjzc_limit_cn'@'%' ;  
  • >flush privileges;  
    2、auto_increment 可以在创建表的时候指定值
  • create table (id int auto_increment....) auto_increment=100
    3、清理分区表
  • alter table trends truncate partition p20150810;
  • select count(*) from trends partition(p20150810);
    4、赋予权限
  • grant select on `zjzc`.* to 'zjzc_zyj'@%;
  • show grants for 'zjzc_zyj'@%;
    5、mysql 中 参数show variables; 有些是局部参数,有些是全局参数
  • set  auto_increment=1;  不是全局的参数,在修改之后退出当前会话,重新进入之后恢复原状
  • set global query_cache_size=400000; 全局的参数,在修改之后退出当前会话,重新进入之后还是修改后的值
  • 两种参数修改之后如果重启 mysql ,都会恢复原状,除非写入 配置文件
    6、primary key 跟 unique key 的区别
  • primary key (k1,k2); 定义为 主键 之后,此列值不能为空
  • unique key t1_log (t1); 定义为唯一键之后,此列值可以为空
  • 一个表只能有一个PRIMARY KEY,但可以有多个UNIQUE KEY
    7、mysqldump -u -p -R --single-transaction --master-data=2 --all-database > dumpfile
  • 其中 -R 是 dump 存储过程
  • --master-data=1 的时候,导入到从上直接开始主从,如果 --master-data=2 的时候,导入到从上需要重新配置 change master to 等参数
  • 默认 --master-data=1
    8、mysql 修改 mysql.user 表的密码
  • UPDATE user SET password=PASSWORD('999999'WHERE user='test';
  • 修改 mysql root密码两种方法
  • 1、/etc/my.cnf 添加 skip-grant-tables 重启修改 mysql.user 表数据
  • 2、停止 mysql ,以 mysql  --skip-grant-tables & 启动 mysql ,修改密码
    9、 备份与恢复
  • 一个数据库:mysqldump -uroot -paming discuz > /data/discuz.sql                   mysql -uroot -paming discuz < /data/discuz.sql
  • 一个表: mysqldump -uroot -paming db tb > /data/post.sql                    mysql -uroot -paming db < /data/post.sql 
    10、查看 mysql sql进程
    show processlist; 
    11、查看 binlog 日志
    >flush logs;
    >show binlog events\G;

    >show binlog events in 'master-bin.000002'\G;






  • 你可能感兴趣的:(mysql 技巧)