mysql常用操作添加新用户/分配权限/修改表/建索引

页面导航:首页 > 数据库 > Mysql > mysql常用操作添加新用户/分配权限/修改表/建索引

mysql常用操作添加新用户/分配权限/修改表/建索引

来源: 作者: 时间:2016-02-21 09:46 【

mysql常用操作添加新用户/分配权限/修改表/建索引等binmysql -u rootmysql grant 权限1,权限2,权限n on 数据库名称.表名称 to [email protected] identified by lsquo;连接口令rsquo;;权限1,权限...
mysql常用操作添加新用户/分配权限/修改表/建索引等
 
bin>mysql -u root 
mysql> grant 权限1,权限2,…权限n on 名称.表名称 to [email protected] identified by ‘连接口令’; 
 
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。 
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。 
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。 
‘连接口令’不能为空,否则创建失败。 
 
例如: 
>grant select,insert,update,delete,create,drop on vtdc.employee to identified by ‘123′; 
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。 
 
mysql>grant all privileges on vtdc.* to identified by ‘123′; 
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。 
 
mysql>grant all privileges on *.* to identified by ‘123′; 
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。 
 
mysql>grant all privileges on *.* to [email protected] identified by ‘123′; 
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
 
 
创建含有外键的表:
 
create table question(id int auto_increment primary key not null,content varchar(300) not null, intime datetime not null,u_id int not null,foreign key(u_id) references user(id) on delete cascade on update cascade);
 
 
 
 
 
备份数据表
shell> mysqldump [OPTIONS] database [tables]  
 
例子:
 
/usr/local/mysql/bin/mysqldump -u 用户名 -p 数据库名称 > ./fedtrainning_db.sql
如果你不给定任何表,整个数据库将被导出。  
 
 
修改表的属性 =======增、删、改======================
ALTER TABLE notify CHANGE content content varchar(500) not null
 
//主键
 
   alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);
//增加一个新列
 
   alter table t2 add d timestamp;
alter table infos add ex tinyint not null default '0';
//删除列
 
   alter table t2 drop column c;
//重命名列
 
   alter table t1 change a b integer;
 
//改变列的类型
 
   alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0';
//重命名表
 
   alter table t1 rename t2;
加索引
 
   mysql> alter table tablename change depno depno int(5) not null;
mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
mysql> alter table tablename add index emp_name (name);
加主关键字的索引
 
mysql> alter table tablename add primary key(id);
加唯一限制条件的索引
 
  mysql> alter table tablename add unique emp_name2(cardnumber);
删除某个索引
 
   mysql>alter table tablename drop index emp_name;
修改表:
 
增加字段:
 
   mysql> ALTER TABLE table_name ADD field_name field_type;
修改原字段名称及类型:
 
   mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
删除字段:
 
   mysql> ALTER TABLE table_name DROP field_name; 
======================= 编码相关 ==========================
 
1修改整个数据库服务器
 
在my.cf文件的[mysqld]段设置:
default-character-set=utf8
 
2单独设置某个数据库:
 
alter database testdb character set utf8;
 
3 查看mysql支持的编码:
show character set;
 
4查看数据库的编码格式:
 
show create database testdb;
 
5 查看数据库的各项编码设置:
 
mysql> SHOW VARIABLES LIKE 'character_set_%'; 
 
SET NAMES 'utf8'; 
 
它相当于下面的三句指令: 
 
SET character_set_client = utf8; 
SET character_set_results = utf8; 
SET character_set_connection = utf8; 
 
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<