1.用户管理

  1. 1.用户的作用:
  2. 登录;管理相对应的库表
  3. 2.定义
  4. 定义用户名和白名单
  5. all@'10.0.0.%'
  6. 命名用户名时,最好不要太长,要和业务相关
  7. 白名单类型:
  8. user@'10.0.0.56'
  9. user@'%'
  10. user@'10.0.0.%' 255.255.255.0 24
  11. user@'10.0.0.%/255.255.254.0' 23
  12. user@'10.0.0.5%' 50-59
  13. user@'localhost' 本地

2.用户的相关命令

  1. 创建用户
  2. #创建一个oldguo的用户,该用户允许10.0.0.%网段的访问,密码123
  3. create user oldguo@'10.0.0.%' identified by '123';
  4. 查询用户
  5. #查询数据库中所有的用户
  6. select user,host from mysql.user;
  7. 查询用户的密码
  8. select user,host,authentication_string from mysql.user;
  9. 修改用户密码
  10. alter user oldguo@'10.0.0.%' identified by '123456';
  11. 删除用户
  12. drop user oldguo@'10.0.0.%'
  13. 8.0版本之前,可以在授权时创建用户,也就是一条命令创建用户并授权,但是在8.0之后,只能是先创建用户在授权。
  14. grant all on *.* to workpress@'%' identified '123' 8.0之后不好使了

3.权限管理

  1. 1.MySQL权限列表
  2. 查看权限列表: show privileges;
  3. 2.授权和回收权限
  4. GRANT 权限 ON 权限作用范围 TO 用户 IDENTIFIED BY '123';
  5. 权限范围:
  6. *.* ===》 一般是管理员会设置的方法,所有库下的所有表
  7. oldguo.* ===> 一般是业务用户会设置的方法,某个库下的所有表
  8. oldguo.t1 ===> 一般是业务用户会设置的方法,某个库下的某张表
  9. 3.企业授权案例
  10. 1)授权一个管理员用户oldguo,可以从10网段任意地址登录连接管理数据库
  11. GRANT all ON *.* TO oldguo@'10.0.0.%' identified by '123456' with grant option;
  12. (2)授权一个业务用户app,可以从10网段地址访问app库的所有的表
  13. GRANT select,update,insert,delete ON app.* app@'10.0.0.%' IDENTIFIED BY '123456';
  14. 3)授权一个开发用户dev,可以对dev库进行业务的开发
  15. 4.查看用户的权限信息
  16. show grant for app@'10.0.0.%';
  17. 5.回收权限
  18. reboke 权限 on from 用户;
  19. reboke delete,drop on app.* from app@'10.0.0.%';
  20. 注意:数据库的权限并不能通过覆盖式删除命令,数据库授权式相加的,像删除权限,必须执行删除命令。

4.root 管理员密码忘记或被篡改如何处理

  1. --skip-grant-tables #解除用户验证
  2. --skip-networking #禁止tcp连接
  3. 1.首先,正常关闭数据库
  4. systemctl stop mysqld
  5. 2.启动数据库时加上以上两个参数,使用mysql_safe 启动,并放入后台(类使用Linux系统的单用户模式)
  6. mysql_safe --skip-grant-tables --skip-networking &
  7. 3.使用mysql登录数据库
  8. mysql
  9. 4.加载授权表
  10. flush privileges;
  11. 5.修改数据库登录密码
  12. alter user root@'localhost' identified by '123456';
  13. 6.重启数据库到正常模式
  14. systemctl restart mysqld
  15. 7.验证数据库密码
  16. mysql -uroot -p123456

5.MySQL的连接管理

  1. 1.自带客户端工具
  2. mysql 主要是用来连接用,参数:
  3. -u 用户名
  4. -p 密码
  5. -h ip
  6. -P 端口
  7. -S socket位置
  8. -e 外部执行命令,免交互
  9. < 导入
  10. 例子:
  11. 1TCP连接远程登陆
  12. mysql -uoldguo -p123456 -h 10.0.0.51 -P 3306
  13. (2)socket 连接方式
  14. mysql -uoldguo -p123456 -S /tmp/mysql.sock
  15. 3)免交互,执行命令
  16. mysql -uoldguo -p123456 -e 'show processlist;'
  17. 4)导入数据库
  18. mysql -uroot -p < t100w.sql
  19. 数据库内部命令
  20. source /root/world.sql
  21. 验证是本地连接还是远程连接
  22. show processlist;
  23. 当我们登录MySQL时,既有tcp,又有socket,默认tcp登录
  24. mysqladmin
  25. 修改密码
  26. mysqladmin -uroot -p123456 password 123
  27. 关闭数据库
  28. mysqladmin -uroot -p123 shutdown
  29. mysqldump
  30. 2.第三方开发工具
  31. sqlyog
  32. navicat
  33. workbench 比较重
  34. 3.应用程序连接
  35. php-fpm
  36. pip3 install mysql

6.MySQL的启动关闭

  1. 数据库初始化完成之后,却启动不了,日志里面没有报错信息,可能是权限不对,可以使用mysqld 前台启动
  2. systemctl ------> mysql.server start ----> mysql_safe -----> mysqld
  3. 1. MySQL初始化配置方法
  4. 源码安装 初始化配置文件 命令行启动时定制
  5. 优先级 命令行启动时定制 > 初始化配置文件 > 源码安装
  6. 当我们想测试暂时性测试时,临时性维护,可以采用命令行模式
  7. 2.初始化配置文件
  8. 查看mysqld 启动时自动加载的配置文件,建议一个mysql实例一个配置文件
  9. mysqld --help --verbose | grep my.cnf
  10. 默认mysqld会加载所有的配置文件
  11. 3.配置文件书写格式
  12. [root@db01 data_3306]# cat /etc/my.cnf
  13. [mysqld]
  14. user=mysql
  15. port=3306
  16. basedir=/usr/local/mysql57
  17. datadir=/data/mysql/data_3306
  18. server_id=6
  19. socket=/tmp/mysql.sock
  20. [mysql]
  21. socket=/tmp/mysql.sock
  22. 标签项 ====> [mysqld]
  23. 服务器端 [server]: [mysqld],[mysqld_safe] ====> 影响到MySQL启动
  24. 客户端 [clinet] : [mysql] ,[mysqldump] ====> 影响本地客户端程序
  25. 配置项 ====> key=value
  1. 4. 自定制初始化配置文件设置
  2. vim /opt/a.cnf
  3. ############################
  4. [mysqld]
  5. user=mysql
  6. port=3306
  7. basedir=/usr/local/mysql57
  8. datadir=/data/mysql/data_3306
  9. server_id=6
  10. socket=/tmp/a.sock
  11. ############################
  12. 启动数据库
  13. mysqld --defaults-file=/opt/a.cnf &
  14. 连接数据库
  15. mysql -S /tmp/a.sock

7.多实例环境的规划和配置

在分布式架构中应用广泛

  1. 多实例端口分别为
  2. 3307 3308 3309
  3. 1. 端口和目录
  4. mkdir -p /data/mysql/data_{3307,3308,3309}
  5. 2. 配置文件准备
  6. cat > /data/mysql/my3307.cnf <<EOF
  7. [mysqld]
  8. user=mysql
  9. port=3307
  10. basedir=/usr/local/mysql57
  11. datadir=/data/mysql/data_3307
  12. server_id=7
  13. socket=/tmp/mysql3307.sock
  14. EOF
  15. cat > /data/mysql/my3308.cnf <<EOF
  16. [mysqld]
  17. user=mysql
  18. port=3308
  19. basedir=/usr/local/mysql57
  20. datadir=/data/mysql/data_3308
  21. server_id=8
  22. socket=/tmp/mysql3308.sock
  23. EOF
  24. cat > /data/mysql/my3309.cnf <<EOF
  25. [mysqld]
  26. user=mysql
  27. port=3309
  28. basedir=/usr/local/mysql57
  29. datadir=/data/mysql/data_3309
  30. server_id=9
  31. socket=/tmp/mysql3309.sock
  32. EOF
  33. 3. 授权
  34. chown -R mysql.mysql /data
  35. 4.初始化数据
  36. mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3307
  37. mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3308
  38. mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3309
  39. 5.启动多实例
  40. mysqld --defaults-file=/data/mysql/my3307.cnf &
  41. mysqld --defaults-file=/data/mysql/my3308.cnf &
  42. mysqld --defaults-file=/data/mysql/my3309.cnf &
  43. netstat -tulnp
  44. 6. 使用 systemd 管理多实例
  45. cat >/etc/systemd/system/mysqld3307.service <<EOF
  46. [Unit]
  47. Description=MySQL Server
  48. Documentation=man:mysqld(8)
  49. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  50. After=network.target
  51. After=syslog.target
  52. [Install]
  53. WantedBy=multi-user.target
  54. [Service]
  55. User=mysql
  56. Group=mysql
  57. ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/data/mysql/my3307.cnf
  58. LimitNOFILE = 5000
  59. EOF
  60. cat >/etc/systemd/system/mysqld3308.service <<EOF
  61. [Unit]
  62. Description=MySQL Server
  63. Documentation=man:mysqld(8)
  64. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  65. After=network.target
  66. After=syslog.target
  67. [Install]
  68. WantedBy=multi-user.target
  69. [Service]
  70. User=mysql
  71. Group=mysql
  72. ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/data/mysql/my3308.cnf
  73. LimitNOFILE = 5000
  74. EOF
  75. cat >/etc/systemd/system/mysqld3309.service <<EOF
  76. [Unit]
  77. Description=MySQL Server
  78. Documentation=man:mysqld(8)
  79. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  80. After=network.target
  81. After=syslog.target
  82. [Install]
  83. WantedBy=multi-user.target
  84. [Service]
  85. User=mysql
  86. Group=mysql
  87. ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/data/mysql/my3309.cnf
  88. LimitNOFILE = 5000
  89. EOF
  90. 7.测试启动
  91. pkill mysqld
  92. systemctl start mysqld3307
  93. systemctl start mysqld3308
  94. systemctl start mysqld3309

MySQL基础管理的更多相关文章

  1. 服务管理之mysql基础

    目录 mysql基础 1. 关系型数据库介绍 1.1 数据结构模型 1.2 RDBMS专业名词 2. mysql安装与配置 2.1 mysql安装 2.2 mysql配置 3. mysql的程序组成 ...

  2. MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》

    最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...

  3. MySQL基础知识:启动管理和账号管理

    整理.记录常用的MySQL基础知识:时间久了,很多就忘记了. 操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13 MySQL Community Server - GPL. ...

  4. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  5. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  6. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  7. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL日志管理

    MySQL日志管理 2013年09月26日 ⁄ MySQL ⁄ 共 14266字 ⁄ 评论数 ⁄ 被围观 , views+ 一.日志类型: MySQL有几个不同的日志文件,可以帮助你找出mysqld内 ...

随机推荐

  1. php开发面试题---php面向对象详解(对象的主要三个特性)

    php开发面试题---php面向对象详解(对象的主要三个特性) 一.总结 一句话总结: 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸 ...

  2. 剑指offer第二版面试题7:二叉树的下一个节点(JAVA版本)

    题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 分析: 根据中序遍历的特点,要找到一个节点的下一个节点无非 ...

  3. 剑指offer——61平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树.   题解: 方法一:使用深度遍历,判断每个节点是不是平衡二叉树,这种从上至下的方法会导致底层的节点重复判断多次 方法二:使用后序遍历判断,这种 ...

  4. PHPStorm IDE 快捷键(MAC版)

    ⌘——Command ⌃ ——Control ⌥——Option/Alt ⇧——Shift ⇪——Caps Lock fn——功能键就是fn 编辑 Command+alt+T 用 (if..else, ...

  5. js 中typeof 检测数据类型的时候需要注意的小细节

    博客搬迁给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/10/26/typeof-%E6%A3%80%E6%B5%8B%E6%95%B0%E6%8D% ...

  6. vue项目使用js-xlsx进行excel表格的导入和导出方法的简单原型封装

    前提:已经安装好 file-saver xlsx和 script-loader,如未安装,请查看 https://www.cnblogs.com/luyuefeng/p/8031597.html 新建 ...

  7. 高级UI晋升之常用View(三)中篇

    更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从ViewPager来介绍常用View:文章目录 一.简介 二.基本使用 ...

  8. USACO 2001 OPEN earthquake /// 最优比例生成树

    题目大意: https://www.cnblogs.com/forever97/p/3603572.html 讲解:https://www.jianshu.com/p/d40a740a527e 题解: ...

  9. Mac版本的 Axure rp8 不显示菜单栏

    我之前也是一直在找这个问题,可能mac用的不熟练吧,其实他的菜单栏就近在眼前 你看不见只是因为你的关注点在axure上 往大了看,他的菜单栏显示在你的电脑的菜单栏上,mac的菜单栏基本都是这么显示的, ...

  10. 夯实JavaScript基础之prototype, __proto__, instanceof

    function New(f){ return function(){ var o = {'__proto__': f.prototype}; f.apply(o, arguments); retur ...