用户名@192.168.1.% 用户只能在改IP段下才能访问(通配符%表示任意) 用户名@% 用户可以再任意IP下访问(默认IP地址为%)
grant all privileges on db1.tb1 TO '用户名'@'IP'
grant select on db1.* TO '用户名'@'IP'
grant select,insert on *.* TO '用户名'@'IP'
revoke select on db1.tb1 from '用户名'@'IP'
1.4、备份库和恢复库 备份库:
MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成。
1.在Windows下MySQL的备份与还原
备份
1、开始菜单|运行| cmd |利用“cd /Program Files/MySQL/MySQL Server 5.0/bin”命令进入bin文件夹
2、利用“mysqldump -u 用户名-p databasename >exportfilename”导出数据库到文件,如mysqldump -u root -p voice>voice.sql,然后输入密码即可开始导出。
还原
1、进入MySQL Command Line Client,输入密码,进入到“mysql>”。
2、输入命令\;\,回车,看看有些什么数据库;建立你要还原的数据库,输入\createdatabase voice;\,回车。
3、切换到刚建立的数据库,输入%use voice;\,回车;导入数据,输入\;\,回车,开始导入,再次出现\>\并且没有提示错误即还原成功。
2、在linux下MySQL的备份与还原
2.1备份(利用命令mysqldump进行备份)
[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。
2.2还原
方法一:
[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台\>\,同1.2还原。 方法二:
[root@localhost mysql]# mysql -u root -p voice 3、更多备份及还原命令 备份: 1.备份全部数据库的数据和结构 mysqldump -uroot -p123456 -A >F:\\all.sql 2.备份全部数据库的结构(加-d 参数) mysqldump -uroot -p123456 -A -d>F:\\all_struct.sql 3.备份全部数据库的数据(加-t 参数) mysqldump -uroot -p123456 -A -t>F:\\all_data.sql 4.备份单个数据库的数据和结构(,数据库名mydb) mysqldump -uroot -p123456 mydb>F:\\mydb.sql 5.备份单个数据库的结构 mysqldump -uroot -p123456 mydb -d>F:\\mydb.sql 6.备份单个数据库的数据 mysqldump -uroot -p123456 mydb -t>F:\\mydb.sql 7.备份多个表的数据和结构(数据,结构的单独备份方法与上同) mysqldump -uroot -p123456 mydb t1 t2 >f:\\multables.sql 8.一次备份多个数据库 mysqldump -uroot -p123456 --databases db1 db2 >f:\\muldbs.sql 还原: 还原部分分(1)mysql命令行source方法和(2)系统命令行方法 1.还原全部数据库: (1) mysql命令行:mysql>source f:\\all.sql (2) 系统命令行: mysql -uroot -p123456 2.还原单个数据库(需指定数据库) (1) mysql>use mydb mysql>source f:\\mydb.sql (2) mysql -uroot -p123456 mydb 3.还原单个数据库的多个表(需指定数据库) (1) mysql>use mydb mysql>source f:\\multables.sql (2) mysql -uroot -p123456 mydb 4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库) (1) mysql命令行:mysql>source f:\\muldbs.sql (2) 系统命令行: mysql -uroot -p123456 更多备份知识: http://www.jb51.net/article/41570.htm (二)数据表的创建 1.1、显示数据表 show tables; 1.2、创建数据表 create table 表名( 列名类型是否可以为空, 列名类型是否可以为空 )ENGINE=InnoDB DEFAULT CHARSET=utf8 是否可空,null表示空,非字符串 not null - 不可空 null - 可空 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值 create table tb1( nid int not null defalut 2, num int not null ) 自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列) create table tb1( nid int not null auto_increment primary key, num intnull ) 或 create table tb1( nid int not null auto_increment, num intnull, index(nid) ) 注意:1、对于自增列,必须是索引(含主键)。 2、对于自增可以设置步长和起始值 show session variables like 'auto_inc%'; set session auto_increment_increment=2; set session auto_increment_offset=10; shwo global variables like 'auto_inc%'; set global auto_increment_increment=2; set global auto_increment_offset=10; 主键,一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。 create table tb1( nid int not null auto_increment primary key, num intnull ) 或 create table tb1( nid int not null, num int not null, primary key(nid,num) ) 外键,一个特殊的索引,只能是指定内容 creat table color( nid int not null primary key, name char(16) not null ) create table fruit( nid int not null primary key, smt char(32) null , color_id int not null, constraint fk_cc foreign key (color_id) references color(nid) ) 主键与外键关系(非常重要) http://www.cnblogs.com/programmer-tlh/p/5782451.html 1.3删除表 drop table 表名 1.4、清空表 delete from表名 truncate table 表名 1.5、基本数据类型 MySQL的数据类型大致分为:数值、时间和字符串 bit[(M)] 二进制位(101001),m表示二进制位的长度(1-64),默认m=1
MySQL基础 学习 超级详细



