第一招、mysql服务的启动和停止
net stop mysql
net start mysql
第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP
第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
如果想增加原用户权限可以在原来的语句上增加
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; //之前没有删除权限,现在有了
grant all privileges on *.* to user1@localhost Identified by "password1"; //用户添加,分配可对所有数据库的所有表
all privileges可指定:
ALL [PRIVILEGES] 所有权限
ALTER 可以使用表和索引alter table
ALTER ROUTINE 可以使用alter routine
CREATE 可以创建数据库和表 *
CREATE ROUTINE 可以使用create routine
CREATE TEMPORARY TABLES 可以使用临时表
CREATE USER 可以对用户进添加,删除,重命名,撤销权限
CREATE VIEW 可以创建和修改视图
DELETE 可以删除数据 删除表中已有的记录 *
DROP 可能删除数据库,表,视图等 *
EVENT 可以使用事件高度器
EXECUTE 可以执行routine
FILE 可以在服务器读写文件
GRANT OPTION 用户有权对自己添加的用衣授权
INDEX 可以创建,删除索引 *
INSERT 可以插入 向表中插入新行*
LOCK TABLES 可以锁定表
PROCESS 可以使用SHOW PROCESSLIST来查看mysql当前用户的执行sql情况 查看服务器中执行的线程信息或杀死线程
REFERENCES Not implemented
RELOAD 可以使用刷新功能 ,重载授权表或清空日志、主机缓存或表缓存。
REPLICATION CLIENT 用户可以进行主从同步
REPLICATION SLAVE 主从同步时,从服务器可以从主服务器读取binary log
SELECT 可以查找 检索表中的记录*
SHOW DATABASES 可以使用show databases来查看所有数据库
SHOW VIEW 可以使用show view来查看视图
SHUTDOWN 可以使用mysqladmin中的参数shutdown 关闭服务器
SUPER Enable use of other adminstrative operations such as CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, and mysqladmin debug command
TRIGGER 可以使用触发器
UPDATE 可以进行修改现存表记录新操作*
USAGE 特殊的“无权限”权限
WITH GRANT OPTION子句是可选的。如果你包含它,用户可以授予权限通过GRANT语句授权给其它用户。你可以用该子句给与其它用户授权的能力
*.* :数据库名称与表名称 这样表示赋予用户操作服务器上所有数据库所有表的权限。
'用户'@'%' :用户与用户地址,用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
'密码' :口令,‘连接口令’不能为空,否则创建失败
GRANT ALL ON samp_db.* TO
[email protected] IDENTIFIED BY "ruby"
GRANT ALL ON samp_db.* TO
[email protected].% IDENTIFIED BY "quartz"
GRANT ALL ON samp_db.* TO
[email protected]/17 IDENTIFIED BY "ruby"
第一个例子指出用户能从其连接的特定主机,
第二个指定对于C类子网192.168.128的IP模式,
第三条语句中,192.168.128.0/17指定一个17位网络号并匹配具有192.168.128头17位的IP地址。
例:
//test用户的的密码是111111,对user表中的name字段有读取权限,对id,name有更新权限
grant select(name),update(id,name) on test.user to 'test'@'localhost' identified by '111111';
第四招、修改用户
修改用户密码
方法:
mysql> update user set password=password('upassword') where user='root';
mysql> flush privileges; //强制刷新内存授权表,否则用的还是在内存缓冲的口令
方法:
格式:mysqladmin -u用户名 -p旧密码 password 新密码
修改用户名
mysql>RENAME USER old_user TO new_user [, old_user TO new_user] ...
实例:
rename user 'test2'@'localhost' to 'test'@'%';
撤消用户权限
REVOKE privileges (columns) ON what FROM user
mysql> revoke all privileges ,grant option from '33'@'localhost';
user部分必须匹配原来GRANT语句的你想撤权的用户的user部分。privileges部分不需匹配,你可以用GRANT语句授权,然后用REVOKE语句只撤销部分权限。
第五招、删除用户
DROP USER user [, user] ...
实例:
mysql>drop user 'test2'@'localhost'; //当用drop删除用户进,tables_priv,procs_priv等表中的数据也会被删除
在这里为什么要用’test2′@’localhost’当用户名,而不是直接test2呢,因为mysql.user这张表,是根用户名和host名决定一个用户,你可查看一下表结构就知道了。
撤权并删除用户
mysql>select * from mysql.user;
mysql>DELETE FROM mysql.user WHERE User="user_name" and Host="host_name";
mysql>FLUSH PRIVILEGES;
http://blog.chinaunix.net/uid-23850972-id-2655950.html