1. 连接数据库
- 本地连接
语法:mysql -h localhost -u root -p / mysql -uroot -p
-h : host(ip地址) localhost = 127.0.0.1
-u : username(用户账户)
-p : password(密码) -
远程连接
语法:mysql -h 192.168.5.116 -P 3306 -u root -p123456
-P:port(端口号默认3306,可以不写)
-
第一次使用 root 连接后最好添加一个新的用户来操作。出于安全考虑,日常开发中最好不要使用 root
‐‐ 创建新用户,并设置密码 ‐‐ *.* 代表该用户可以操作任何库、任何表 ‐‐ 主机名可以使用 '%', 代表允许该用户从任何机器登陆 GRANT ALL PRIVILEGES on *.* to '用户名'@'localhost' IDENTIFIED BY "密码" WITH GRANT OPTION; eg:GRANT ALL PRIVILEGES on *.* to 'ac'@'localhost' IDENTIFIED BY "1234" WITH GRANT OPTION; ‐‐ 刷新使权限生效 flush privileges; -- 默认情况下 创建完账号之后是不允许远程连接的 -- 账户创建不成功 mysql>use mysql; -- 查看user的host是否允许远程连接,%代表可以远程连接,localhost是允许本机连接 mysql>select host, user from user; mysql>update user set host = '%' where user = '账户名字' -- 修改好后再次查看权限 mysql>select host, user from user; ‐‐ 刷新使权限生效 flush privileges;
2. 退出数据库
四种方式效果一样:
- exit
- quit
- \q
- 快捷键: ctrl + d
3. 权限管理
- MySQL 权限的两个阶段
- 第一阶段为连接验证,主要限制用户连接 mysql-server 时使用的 ip 及 密码
- 第二阶段为操作检查,主要检查用户执行的指令是否被允许,一般非管理员账户不被允许执行 drop、 delete 等危险操作
- 权限控制安全准则
- 只授予能满足需要的最小权限,防止用户执行危险操作。
- 限制用户的登录主机,防止不速之客登录数据库。
- 禁止或删除没有密码的用户。
- 禁止用户使用弱密码。
- 定期清理无效的用户,回收权限或者删除用户。
- 常用操作
- 创建账户、权限授予
8.0 之前版本GRANT ALL PRIVILEGES on *.* to '用户名'@'主机' IDENTIFIED BY "密码" WITH GRANT OPTION; flush privileges; ‐‐ 刷新使权限生效
ALL PRIVILEGES : 授予全部权限, 也可以指定 select 、 insert 等
*.* : 允许操作的数据库和表
WITH GRANT OPTION : 带有该子句说明允许用户将自己拥有的权限授予别人
8.0 之后的版本CREATE USER `用户名`@`主机` IDENTIFIED BY '密码'; ‐‐ 创建账户 GRANT ALL ON *.* TO `用户名`@`主机` WITH GRANT OPTION; ‐‐ 授权
-
修改密码
UPDATE user SET authentication_string=password('你的密码') where user="root"; ALTER user '用户名'@'主机' identified with mysql_native_password BY '你的密码';
-
查看权限
show grants; ‐‐ 查看当前用户的权限 show grants for 'ac'@'localhost'; ‐‐ 查看用户 ac 的权限
-
回收权限
revoke delete on *.* from 'ac'@'localhost';
-
删除用户
use mysql; select host, user from user; drop user 用户名@'%';
- 创建账户、权限授予