首页 > 代码库 > MYSQL 新生学习手册
MYSQL 新生学习手册
文章摘自《MySQL必知必会》
MySQL书籍推荐:MySQL必知必会。是比较全面的讲解了MySQL的实践方面的操作,用来入门不错。网上有pdf的电子书.
本文将介绍MySql创建帐号,删除帐号,设置和介绍各种帐号的权限
创建用户帐号:
- CREATE USER user_name IDENTIFIED BY ‘your_password‘;
CREATE USER user_name IDENTIFIED BY ‘your_password‘;
改名
- RENAME USER old_name TO new_name;
RENAME USER old_name TO new_name;
删除用户帐号
- DROP USER user_name;
DROP USER user_name;
查看用户的权限可以用
SHOW GRANTS FOR user_name;
如果显示为:GRANT USAGE ON *.* TO ‘user_name‘@‘%‘ 则表示无任何权限!!!! 前面一个*表示任意数据库,后面一个表示数据库里的任意表
注意:用户必须具有GRANT OPTION权限才能使用GRANT和INVOKE为别的用户赋予或者撤销权限
例子:赋予SELECT权限
GRANT SELECT ON testdb.* TO user_name; 表示将对testdb数据库下的所有表的SELECT权限赋予user_name用户.
撤销权限:
REVOKE SELECT ON testdb.* FROM user_name; 表示将用户对testdb数据库中所有表的SELECT权限撤销.
可以一次写多个如:GRANT SELECT, INSERT ON testdb.* TO user_name;
MySql的权限如下表所示:
ALL | 除GRANT OPTION外的所有权限 |
ALTER | 使用ALTER TABLE |
ALTER ROUTING | 使用ALTER PROCEDURE和DROP PROCEDURE |
CREATE | 使用CREATE TABLE |
CREATE ROUTING | 使用CREATE PROCEDURE |
CREATE TEMPORARY TABLES | 使用CREATE TEMPORARY TABLE |
CREATE USER | 使用CREATE USER、DROP USER、RENAME USER和REVOKE ALL PRIVILLEAGES |
CREATE VIEW | 使用CREATE VIEW |
DELETE | 使用DELETE |
DROP | 使用DROP TABLE |
EXECUTE | 使用CALL和存储过程 |
FILE | 使用SELECT INTO OUTFILE和LOAD DATA INFILE |
GRANT OPTION | 使用GRANT和REVOKE |
INDEX | 使用CREATE INDEX和DROP INDEX |
INSERT | 使用INSERT |
LOCK TABLES | 使用LOCK TABLES |
PROCESS | 使用SHOW FULL PROCESSLIST |
RELOAD | 使用FFLUSH |
REPLICATION CLIENT | 服务器位置的访问 |
REPLICATION SLAVE | 由复制从属使用 |
SELECT | 使用SELECT |
SHOW DATABASES | 使用SHOW DATABASES |
SHOW VIEW | 使用SHOW CREATE VIEW |
SHUTDOWN | 使用mysqladmin shutdown(用来关闭MySQL) |
SUPER | 使用CHANGE MASTER、KILL、LOGS、PURGE、MASTER和SET GLOBAL。还允许mysqladmin调试登录 |
UPDATE | 使用UPDATE |
USAGE | 无访问权限 |
更改口令
SET PASSWORD FOR user_name = PASSWORD(‘new_password‘);
或者SET PASSWORD = PASSWORD(‘new_password‘); 这个是更改自己的口令
GRANT和REVOKE可以在几个层次上控制访问权限:
整个服务器,使用GRANT ALL和REVOKE ALL;
整个数据库,使用ON database.*;
特定的表,使用ON database.table;
特定的列 ,不知道
特定的存储过程, 不知道
补充一点,
我们在linux系统下直接输入mysql时,会以本地匿名账号登陆,即‘‘@localhost
而这个账户一开始没权限即USAGE *.* ,,所以很多时候操作都不成功。
这时我们如果只是学习的话,可以首先用root登陆即mysql -u root -p <CR>然后输入root密码(也可以没有密码,则不加-p)
然后GRANT ALL ON *.* FOR ‘‘@localhost;
这样即可。