1. 修改mysql管理员root账号的密码:
- 方法一:shell命令
[root@root ~]# 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账号的密码:
方法一:
(1)跳过权限表,然后root用户登录数据库
-
[root@root ~]# killall -TERM mysqld
-
[root@root ~]# mysqld_safe --skip-grant-tables & ——> 跳过权限表
-
[root@root ~]# mysql -u root ——> root用户登录数据库
(2)进入数据库之后,就可以修改数据库管理员root的密码。最后,重新启动MySQL,使用新密码登录;
- mysql>update user set password=password(‘123’) where user=‘root’ and host=‘localhost’;
- mysql> FLUSH PRIVILEGES;
- MySQL> quit
方法二:
- 进入:vim /etc/my.cnf
- 修改/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’;
四、 用户权限
新用户授权(不存在的用户):
- 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;
- [root@root ~]# mysql -u user3 -p
- mysql> SELECT * FROM fruitsdb.fruits;(再次验证权限)
- mysql>quit;
2、网络连接权限;
切记:必须以root用户登录mysql;
创建用户:
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库没有操作权限;