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

WBOY
リリース: 2016-06-01 13:34:33
オリジナル
853 人が閲覧しました

bitsCN.com

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 joe@10.163.225.87 identified by ‘123′; 

给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。 

 

mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′; 

给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。 

 

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

 

bitsCN.com
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート