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

bin>mysql -u root
mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 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地址、机器名字、域名。也可以用’%'表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。

 例如:
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

mysql>grant all privileges on vtdc.* to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on *.* to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on *.* to joe@localhost 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;

转载:http://linhuihua.com/post/2011-02-27/19148010

猜你喜欢

转载自mrs-robert.iteye.com/blog/1870359