参考:I’m Me!博客,网址:http://www.cnblogs.com/Richardzhu/p/3318595.html
********************************Mysql 中host 中ip通配为 % , 不是 *
Host=192.168.1.% -------正确,%为通配Host=192.168.1.* ------错误,都不可匹配
*******************在创建用户密码的时候,
create user 'zhou'@'110.3.55.143' identified by 'user#$123';
则在linux的mysql服务器上,连接密码为 -p'user#$123' ,而不是 -puser#$123, 因为其有特殊字符 #$,注意
mysql中
数据库链接: mysql -h ip osns -uUser -pPwd
其中-h为需要指名服务器名地址,其中ip为地址, 用户为User,密码Pwd
或者直接连接:mysql -u用户 -p密码,
所有用户均为mysql数据库中的mysql数据库user表中,对于用户的权限,见下。
注:mysql权限类型,mysql5.0权限表。主要权限如下:
涉及表数据为:select、insert、update、delete、alter(更改表)、index(索引);视图的为create view、show view;存储过程为alter routine、create routine、execute(执行存储过程);数据库表有create、drop、grant option;触发器为trigger。
2 问题:
1 windows安装mysql后,切换其他权限用户。
答:如果直接打开Mysql Command Line Client,则直接是mysql的root用户,如果要切换,在安装目录下,如C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin下,输入mysql -uxx -pxx 即可,切换用户
2 mysql数据库中权限表位置。mysql数据库中,user用户账号,db库级别权限,tables_priv:表级别权限、colums_priv:列级别权限、procs_priv:存储过程和存储函数相关的权限和proxies_priv:代理用户权限
3 出现ERROR 1045 (28000): Access denied for user 'zhou1'@'localhost' (using password:
YES)
问题是mysql -uzhou1 -p12; 其中密码被看成12; ,切记不要加;
3 数据库操作:
赋予权限后需要 #重新载入赋权表 ****************************
FLUSH PRIVILEGES;
整个服务器:grant ALL 和revoke ALL
整个数据库:on database.*
特定表:database.table
操作外键权利:grant references on testdb.* to developer@’192.168.0.%’;
grant 高级 DBA 管理 MySQL 中所有数据库的权限。
grant all on *.* to 'dba'@'localhost’
proxies_priv代理用户权限
1 创建新用户:
CREATE USER 'zhou1'@'localhost' IDENTIFIED BY '12345';
CREATE USER 'zhou2'@'localhost' IDENTIFIED BY '12345';
CREATE USER 'zhou3'@'localhost' IDENTIFIED BY '12345';
实例:
(1)CREATE USER 'zhou4'@'localhost' IDENTIFIED BY '12345'; (会在mysql数据库的user表中添加用户,该用户无任何权限)
(2)grant select on test.* to zhou3@'%' identified by 'userPwd' with grant option
会在user表添加无任何权限的用户zhou3,同时会在db表添加用于select和grant权限的用户。
2 赋予zhou1查询权限
GRANT select ON mysqlTest.* TO 'zhou1'@'localhost'; 在mysql的db表中,收回权限后,记录删除
对应收回:
revoke select on mysqlTest.* from zhou1@localhost;
********赋予什么权限,就要删除对应的权限,否则会抛出:There is no such grant defined for user 'zhou1XXxxxx
其他实例:
GRANT select ON mysqlTest.class TO 'zhou2'@'localhost' 在mysql中的tables_priv表中,收回权限后,记录删除。
revoke select on mysqlTest.class from zhou2@localhost;
GRANT create ON mysqlTest.class TO 'zhou3'@'localhost'
赋予zhou1所有数据库所有权限
GRANT ALL PRIVILEGES ON *.* TO 'zhou1'@'localhost' 此时会向mysql中的user表中添加信息 ********* 注意在grant all权限中,不包含Grant_priv权限
FLUSH PRIVILEGES;
REVOKE ALL PRIVILEGES ON *.* FROM zhou1@localhost;
(1)当前用户的权限
显示权限:show grants;
显示某个用户的权限;show grants for 'zhou1'@'localhost'
(2)查看某个用户的权限
show grants for 'jack'@'%';(3)回收权限
revoke delete on *.* from 'jack'@'localhost';
(4)删除用户
drop user 'jack'@'localhost';
(5)对账户重新命名
rename user 'jack'@'%' to 'jim'@'%';(6)修改密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
root可以用 mysqladmin -uroot -p123456 password 1234abcd
(7)赋予权限与收回权限
REVOKE GRANT OPTION ON *.* FROM 'test'@'%';
4 Mysql主从复制(Replication)
复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程(参考网址:http://www.cnblogs.com/zgx/archive/2011/09/13/2174823.html)
实现主写从读,减少服务器的压力
5 注意问题
(1)grant all 权限,中all不包含grant权限,即此用户没有向其他用户赋权的权限,如果需要需要单独开。
(2)查看视图的权限,grant select db.*,中*包含了所有的表和视图等
(3)当有select权限时,视图show view权限可不写。