1. 修改mysql管理员账户的密码
方法一:shell命令
mysqladmin -u root -p password "123"
方法二:mysql数据库命令
mysql>use mysql;
mysql>update user set password=password('123') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES; #刷新
可以发现,密码已经更改成功;
2. mysql管理员root账号密码遗忘
方法一:
killall -TERM mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
进入数据库之后,就可以修改数据库管理员root的密码;
mysql>update user set password=password('123') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES;
MySQL> quit
重新启动MySQL,使用新密码登录;
方法二:
修改/etc/my.cnf
在[Mysqld]下添加:
skip-grant-tables
重启MySQL服务
进入数据库之后,就可以修改数据库管理员root的密码;(如上)
mysql -u root
mysql>update user set password=password('123') where user='root' and host='localhost';
mysql> FLUSH PRIVILEGES;
MySQL> quit
重新启动MySQL,使用新密码登录(注:实验结束后将my.cnf中的跳过策略表注释掉)
3. 管理数据库用户
方法一:
mysql> INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y');
方法二:
mysql> CREATE USER 'user1'@'localhost' IDENTIFIED BY '123456';
4. 用户授权
新用户授权(不存在的用户):
mysql> GRANT 权限列表 ON 库或表 TO '用户名'@'登录IP或域名' IDENTIFIED BY '123456';
老用户授权:
mysql> GRANT 权限列表 ON 库或表 TO '用户名'@'登录IP或域名'
权限列表:
all——所有权限
select,insert,update,drop,delete,create等库或表:
*.*——所有库,所有表
登录IP或域名:
%——表示没有限制,在任何主机都可以登录
192.168.120.%——表示在192.168.120.0网段可以登录
(1)本地权限
mysql> GRANT select ON fruitsdb.* TO 'user2'@'localhost' IDENTIFIED BY '123456';
mysql>SHOW GRANTS FOR 'user2'@'localhost';
mysql> CREATE USER 'user3'@'localhost' IDENTIFIED BY '123456';
mysql>SHOW GRANTS FOR 'user3'@'localhost';
mysql -u user2 -p
mysql> SELECT * FROM fruitsdb.fruits;(验证权限)
mysql>quit;
mysql -u user3 -p
mysql> SELECT * FROM fruitsdb.fruits;(再次验证权限)
mysql>quit;
(2)网络连接权限
mysql>GRANT all ON fruitsdb.* TO 'user4'@'%' IDENTIFIED BY '123456';
mysql>SHOW GRANTS FOR 'user4'@'%';
从另一台Linux的Mysql客户端登录验证;
安装mysql客户端,并启动mysql服务;
关掉服务器端的防火墙和禁用seLinux
在客户端进行登录验证;
mysql -h 192.168.5.116 -P 3306 -u wangwu -p123456
mysql> use fruitsdb;
mysql> show tables
mysql> SELECT * FROM fruitsdb.fruits;
mysql> CREATE TABLE tbserver (num INT NOT NULL);
mysql> INSERT INTO tbserver VALUES(6),(14),(11),(20);
mysql> select * from tbserver;
mysql> delete from tbserver where num=6;
mysql> select * from tbserver;
mysql> show tables;
mysql> drop table tbserver;
mysql> show tables;
mysql>quit;
3)撤销权限
mysql>REVOKE all ON fruitsdb.* FROM 'user4'@'%';
mysql>SHOW GRANTS FORM 'user4'@'%';
从另一台Linux的Mysql客户端登录验证!
对fruitsdb库没有操作权限;