MySQL基础管理
用户管理
作用: 登录、管理数据逻辑对象
定义:
格式:
用户名@'白名单'
白名单支持的方式:
wordpress@'10.0.0.%' # 10.0.0.0 段
wordpress@'%' # 所有
wordpress@'10.0.0.200' # 指定IP
wordpress@'localhost' # 本地localhost
wordpress@'db02' # 指定主机名,能解析该主机名
wordpress@'10.0.0.5%' # 10.0.0.5x 段
wordpress@'10.0.0.0/255.255.254.0' # 子网掩码方式
管理操作:
# 创建用户
create user wordpress@'192.168.0.%' identified by '123';
# 查询用户
select user, host from mysql.user;
# 修改用户密码
alter user wordpress@'192.168.0.%' identified by '456';
# 删除用户
drop user wordpress@'192.168.0.%';
# 创建用户密码以及授权操作
# 5.7版本 创建用户以及授权一步完成
grant all on *.* to wordpress@'192.168.0.%' identified by '123456';
# 8.0版本 必须先创建用户之后才能授权
create user wordpress@'%' identified by '123456';
grant all privileges on wordpress.* to wordpress@'%';
用户权限
常用权限
ALL:
SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
ALL : 以上所有权限,一般是普通管理员拥有的
授权命令
grant 权限 on 作用目标 to 用户 identified 密码 with grant option
作用目标:
*.*:代表授权所有库所有表权限
wordpress.*:代表授权 wordpress 库下的所有表权限
worpress.t1:代表授权 wordpress
with grant option:超级管理员才具备的,给别的用户授权的功能
授权相关
# 创建一个管理员用户root,可以通过192.168.0网段登录,管理所有数据库
grant all on *.* to root@'192.168.0.%' identified by '123456';
# 创建一个应用用户app用户,可以远程登录mysql,并能操作app库
grant select,update,insert,delete on app.* to app@'%' identified by '123456';
查看授权
show grants for root@'%';
show grants for app@'%'';
回收权限
# 回收app用户对app库下所有表的删除的权限
revoke delete on app.* from app@'%';
# 回收app用户对app库下所有表查询 更新 插入权限
revoke select,update,insert on app.* from app@'%';
连接管理
- 常用参数
-u 用户
-p 密码
-h IP
-P 端口
-S socket文件
-e 免交互执行命令
< 导入SQL脚本
# 远程连接
mysql -uroot -p -h 192.168.0.11 -P3306
# 免交互执行sql语句
mysql -uroot -p1 -e "select user,host from mysql.user;"
# 导入sql脚本
mysql -uroot -p1 <world.sql
# 查看socket
mysql> select @@socket;
# 查看连接情况
mysql> show processlist;
# 内置命令
help 打印 mysql 帮助
\c ctrl+c 结束上个命令运行
\q quit; exit; ctrl+d 退出 mysql
\G 将数据竖起来显示
source 恢复备份文件
启动方式
以上多种方式,都可以单独启动MySQL服务
mysqld_safe和mysqld一般是在临时维护时使用。
另外,从Centos 7系统开始,支持systemd直接调用mysqld的方式进行启动数据库
维护性的启动方式
我们一般会将我们需要的参数临时加到命令行。也会读取/etc/my.cnf 的内容,但是如果冲突,命令行优先级最高
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &
/usr/local/mysql/bin/mysqld &