别想万里,要把一只脚放到另一脚的前边
分类: Mysql/postgreSQL
2012-06-19 20:14:22
一、root用户密码的维护:
由于安装MySQL完后,MySQL会自动提供一个不带密码的root用户,为了安全起见给root设置密码:
#mysqladmin -u root password 123 (123为密码,也可以写成:'123'或"123") ;
设置密码后登入时就不能直接输入mysql了,必须跟些参数了,如下:
[root@localhost ~]# mysql -u root -p (-u 后跟登入的用户名,-p 提示要密码登入)
Enter password:(输入密码)
修改密码:
[root@localhost ~] #mysqladmin -u root -p password 123456 (password 后跟的是要更新的新密码)
Enter password:(输入原始密码,回车即可)
有人会问到: 日! 我原来的mysql 密码丢失了(其实这种的一般都是有两种一种不负责任的管理员,一种hacker)怎么办呢?
我用的方法:
在mysql 的安装目录中找到 mysqld_safe 文件, ./mysqld_safe --skip-grant-tables
之后就启动了不用密码的环境:
Mysql -u root
Mysql> update mysql.user set password = password('red') where User='root';
Mysql> flush privileges;
Myusql> quit;
完毕, 当然有人说可以在配置文件中加入 --skip-grant-tables
二、普通用户的维护
增加一个用户:
1.用CREATE USER语句来新建普通用户
user01 只能本地登录
CREATE USER user01@'localhost' IDENTIFIED BY 'password1';
user02可以远程访问
CREATE USER user02@'%' IDENTIFIED BY 'password1'; 其中% 是通配符,指的这个用户在哪里都可以登录mysql 。
在 ROOT
权限修改user01密码 SET PASSWORD FOR 'user01'@'localhost' = PASSWORD('password2');
如果有时候 报错误,请记得加@主机,因为默认的@ 后边是% 所以你要是localhost 就找不到这个用户了。
2.用INSERT语句来新建普通用户
insert into mysql.user(Host,User,Password) values("localhost","yusuhan",password("123"));
flush privileges;
解释:mysql 数据库中的user 存放所有用户的及其权限。 上述就是在user 表中插入,用户,密码,来自哪里的主机,之后你必须flush privileges; 但是不能用,why'? 没有任何权限!grant all on *.* to xxx@localhost identified by '123"; 在给这个用户赋权限!
3.用GRANT语句来新建普通用户
grant all on *.* to xxx@"%" identified by "123" ;
给xxx 赋予在任何主机都能登录数据库,而且可以操作任何东东,基本上和root 差不多了。
你有没有看到这个用户 select user from mysql.user;
分析: 如果创建一个用户,而且要给他赋予一定的权限,一般都用grand ,其它的方法都不能一步到位。你说呢?
删除一个用户呢?.
DROP USER 'allmusic@'localhost' ;-----------drop user: allmusic .
Localhost 你还是要加,默认是%
delete from user where user='allmusic' and host='localhost' ;
Flush privileges;