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库没有操作权限;