#mysql常用命令
——删除主键,添加新主键【适用于以前主键不是id的场景】
alter table 表名 change 现在主键名 现在主键名 int(11);
alter table 表名 drop primary key;
alter table 表名 add COLUMN 新主键名 INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY first;
###——创建库
CREATE DATABASE 库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
###——删除表,创建新表
DROP TABLE IF EXISTS `supplier`;
CREATE TABLE `supplier` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`supplier_type` tinyint(2) NOT NULL DEFAULT '0' COMMENT '供货商品类',
`supplier_name` varchar(255) NOT NULL COMMENT '供货商名称',
`supplier_introduce` varchar(255) NOT NULL COMMENT '供应商介绍',
`remark` varchar(255) NOT NULL,
`supplier_emails` varchar(255) NOT NULL DEFAULT '' COMMENT '供货商邮箱地址',
`removed` tinyint(2) NOT NULL DEFAULT '1' COMMENT '供应商是否下线,0是offline,1是online',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 comment='供应商信息表';
###——增加索引
alter table 表名 add index idx_索引名 using btree(表名(32)), lock=none;//不锁表
###——表添加列
Alter table `库名`.`表名` add column `新建的列名` varchar(100) NULL COMMENT '注释' after/before 某一列名;
###——赋予权限
一般线上机器只需要
grant SELECT, INSERT, UPDATE ON `库名`.* TO '用户名'@'%' IDENTIFIED BY '密码';
只读账号
grant select on `库名`.* to '用户名'@"192.168.%.%" Identified by '密码';
###——回收权限
revoke select on 库名.表名 from '用户名'@"%";
###——查询用户
select host,user from mysql.user;
###——查询用户权限
show grants for 用户名;//不写地址默认是%
show grants for 用户名@'192.168.%.%';
###——更改密码
update mysql.user set password=password("新密码") where user="用户名" and host="192.168.%.%";
###——最大连接数配置
set global max_connections = 65536;
show variables like '%conn%';
###——readonly配置
stop slave;
set global read_only=1;
show global variables like "%read_only%";
start slave;
###——删除多少天前的数据
delete from `send_record` where datediff(curdate(), `created_at`)>=15;
###——