MySQL的学习--用户创建授权

前一段时间,将项目改成SAAS的架构,每个billing account都可以获得一个子域,一个单独的数据库,一个单独的数据库用户和对应数据库的权限。

现在有时间了,将数据库相关的命令用博客备份一下。其中有些没有尝试过,如有错误请指正。

1. 创建用户

create user username@'host' identified by 'password';

insert into mysql.user(Host,User,Password) values("host", "username", password("password"));

如果希望指定的用户只能从某台指定的域(domain)或主机访问,可以在创建用户时指定host,例如10.10.10.22,如果希望能够从本地登录,可以将host设成localhost,如果希望在个台机器上都能链接,可以将host设为%。

2. 创建查看数据库

show databases;//显示数据库

create database dbname; //创建一个数据库

use dbname;//进入数据库

show tables;//显示表

desc tablename;//显示表结构

source sql/file/path;导入sql文件

3. 用户授权

grant all privileges on dbname.* to username@'%' identified by 'password';//授权username用户拥有dbname数据库的所有权限

grant select, update on dbname.* to username@'%' identified by 'password';//授权username用户拥有dbname数据库的指定部分权限

4. 刷新授权

flush privileges;

5. 删除用户和撤销权限

drop user username@host;//取消一个账户和其权限

revoke privilege on dbname.tablename FROM 'username'@'host';//取消授权用户

delete from user where user = "username" and host = "host";//删除用户

6. 修改用户密码

mysqladmin -uroot -proot password 123;//将root用户的密码改为123

update mysql.user set password=password('新密码') where user="username" and host="localhost";

set password for 'username'@'host' = password('newpassword');

7. 删除数据库

drop database dbname;//删除一个已经确定存在的数据库

alter table 表名 ENGINE=存储引擎名;//修改表的存储引擎

alter table 表名 drop 属性名;//删除字段

alter table 旧表名 rename to 新表名;//修改表名

alter table 表名 modify 属性名 数据类型;//修改字段数据类型

alter table 表名 change 旧属性名 新属性名 新数据类型;//修改字段名

alter table 表名 drop FOREING KEY 外键别名;//删除子表外键约束

alter table example add phone VARCHAR(20);//增加无约束的字段

alter table example add age INT(4) NOT NULL;//增加有约束的字段

alter table example add num INT(8) PRIMARY KEY FIRST;//表的第一个位置增加字段

alter table example add address VARCHAR(30) NOT NULL AFTER phone;//表的指定位置之后增加字段

alter table example modify name VARCHAR(20) FIRST;//把字段修改到第一位

alter table example modify num INT(8) ATER phone;//把字段修改到指定字段之后

 

posted @ 2014-10-13 19:13  疯狂的原始人  阅读(916)  评论(0编辑  收藏  举报