• 一.MySQL5.6与MySQL5.7安装的区别
  • 二.MySQL用户权限管理
  • 三.MySQL连接管理
  • 四.MySQL启动关闭流程
  • 五.MySQL实例初始化配置
  • 六.MySQL多实例配置
  • 一.MySQL5.6与MySQL5.7安装的区别

    • 1、cmake的时候加入了bostorg
    • 2、初始化时 使用mysqld --initialize 替代mysql_install_db,其它参数没有变化:--user= --basedir= --datadir=
    • 3、--initialize会生成一个临时密码
    • 4、还可以用另外一个参数--initialize-insecure
    • [root@db02 mysql-5.7.20]# yum install -y gcc gcc-c++automake autoconf[root@db02 mysql-5.7.20]# yum install make cmake bison-devel ncurses-devel libaio-devel[root@db02mysql-5.7.20]#wgethttpss://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_59_0.tar.gz
      #登录boost.org下载也可以[root@db02 mysql-5.7.20]# tar xf boost_1_59_0.tar.gz -C /usr/local/
      [root@db02 mysql-5.7.20]#
      cmake .-DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20\-DMYSQL_DATADIR=/application/mysql-5.7.20/data \-DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \-DDOWNLOAD_BOOST=1\-DWITH_BOOST=/usr/local/boost_1_59_0 \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS=all\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_FEDERATED_STORAGE_ENGINE=1\-DWITH_BLACKHOLE_STORAGE_ENGINE=1\-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1\-DWITH_ZLIB=bundled \-DWITH_SSL=bundled \-DENABLED_LOCAL_INFILE=1\-DWITH_EMBEDDED_SERVER=1\-DENABLE_DOWNLOADS=1\-DWITH_DEBUG=0 

    • 二.MySQL用户权限管理

      • 1.MySQL用户基础操作

      Linux用户的作用:

      • 1)登陆系统
      • 2)管理系统文件

      Linux用户管理:

      • 1)创建用户:useradd adduser
      • 2)删除用户:userdel
      • 3)修改用户:usermod

      MySQL用户的作用:

      • 1)登陆MySQL数据库
      • 2)管理数据库对象

      MySQL用户管理:

      • 1)创建用户:create user
      • 2)删除用户:delete user drop user
      • 3)修改用户:update

      用户的定义:

      • 1) username@’主机域’
      • 2)主机域:可以理解为是MySQL登陆的白名单
      • 3)主机域格式:
        • ’10.0.0.51’
        • ’10.0.0.5%’
        • ’10.0.0.%’
        • ’10.0.%.%’
        • ’10.%.%.%’
        • ‘%’
        • ‘db01’
        • ’10.0.0.51/255.255.255.0’

      用户管理实战

      刚装完MySQL数据库该做的事情

      • 1、设定初始密码(root@localhost)

        [root@db02 mysql-5.7.20]# mysqladmin -uroot -p password ‘oldboy123’
        • 2、修改密码
        • 3、使用密码登陆
        [root@db02 mysql-5.7.20]# mysql -uroot -p123
        • 4、清理无用的用户

        误删除了所有用户

      • #关闭数据库[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop
        #启动数据库[root@db02 mysql-5.7.20]# mysqld_safe --skip-grant-tables --skip-networking
        #使用mysql库
        mysql> usemysql
        #错误方法1、创建root用户
        mysql> create userroot@’localhost’;
        #错误方法2、创建root用户
        mysql> insert into user(user,host,password) values('root','10.0.0.55',PASSWORD('123'));
        #正确方法创建root用户
        mysql> insert into mysql.user values (‘localhost’,’root’,PASSWORD(‘123’),
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ‘Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’Y’,
        ’’,
        ’’,
        ’’,
        ’’,0,0,0,0,’mysql_native_password’,’’,’N’);

        忘记root密码

      • #关闭数据库[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop
        #启动数据库[root@db02 mysql-5.7.20]# mysqld_safe --skip-grant-tables --skip-networking
        #修改root用户密码
        mysql> update user set password=PASSWORD('oldboy123') where user='root' and host='localhost';
        
        • 2.用户管理及权限管理_

        1)创建用户

        mysql> create user oldboy@'10.0.0.%' identified by '123';

        2)查看用户

        mysql>  select user,host from mysql.user;

        3)删除用户

        mysql>  drop user oldboy@‘10.0.0.%’;

        4)修改密码

        mysql> set password
        mysql> update user set password=PASSWORD('oldboy123') where user='root' and host='localhost'; mysql> grant all privileges on *.* to oldboy@’10.0.0.%’ identified by ‘123’;

        5)用户权限介绍

        MySQL的权限定义:
        作用对象:库、表
        权限

        INSERT,SELECT, 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

        归属
        每次设定只能有一个属主,没有属组或其他用户的概念

        grant     all privileges    on     *.*    to oldboy@’10.0.0.%’ identified by ‘123’; 权限 作用对象 归属 密码

        作用对象分解

        *.* [当前MySQL实例中所有库下的所有表]
        wordpress.* [当前MySQL实例中wordpress库中所有表(单库级别)]
        wordpress.user [当前MySQL实例中wordpress库中的user表(单表级别)]

        3.企业中权限的设定

        开发人员说:请给我开一个用户
        沟通:

        • 1、你需要对哪些库、表进行操作
        • 2、你从哪里连接过来
        • 3、用户名有没有要求
        • 4、密码要求
        • 5、发邮件
        #一般给开发创建用户权限
        grant select,update,delete,insert on *.* to oldboy@’10.0.0.%’ identified by ‘123’;
      • 三.MySQL连接

        1.连接工具

        • 1)MySQL自带的连接工具

        mysql

        常见的特定于客户机的连接选项:
        -u:指定用户
        -p:指定密码
        -h:指定主机
        -P:指定端口
        -S:指定sock
        -e:指定SQL
        --protocol=name:指定连接方式

        • 2)第三方的连接工具

        sqlyog、navicat
        应用程序连接MySQL
        注意:需要加载对应语言程序的API

        2.连接方式

        • 1) socket连接
        mysql -uroot -poldboy123 -S/application/mysql/tmp/mysql.sock
        mysql -uroot -poldboy123
        • 2) TCP/IP
        mysql -uroot -poldboy123 -h10.0.0.51 -P3306

        启动

        /etc/init.d/mysqld start ------> mysqld_safe ------> mysqld

        关闭

        /etc/init.d/mysqld stop
        mysqladmin -uroot -poldboy123 shutdown
        kill -9 pid ?
        killall mysqld ?
        pkill mysqld ?

        五.MySQL实例初始化配置

        1.初始化配置文件的作用

        场景:我要启动实例

        问题:
        1)我不知道我的程序在哪?
        2)我也不知道我将来启动后去哪找数据库?
        3)将来我启动的时候启动信息和错误信息放在哪?
        4)我启动的时候sock文件pid文件放在哪?
        5)我启动,你们给了我多少内存?
        ...

        所以:

        • 1)预编译:cmake去指定,硬编码到程序当中去
        • 2)在命令行设定启动初始化配置
        --skip-grant-tables
        --skip-networking
        --datadir=/application/mysql/data
        --basedir=/application/mysql
        --defaults-file=/etc/my,cnf --pid-file=/application/mysql/data/db01.pid --socket=/application/mysql/data/mysql.sock --user=mysql --port=3306 --log-error=/application/mysql/data/db01.err
        • 3)初始化配置文件(/etc/my.cnf)

        配置文件读取顺序:

        /etc/my.cnf
        /etc/mysql/my.cnf
        $MYSQL_HOME/my.cnf(前提是在环境变量中定义了MYSQL_HOME变量)
        defaults-extra-file (类似include)
        ~/my.cnf

        如果使用./bin/mysqld_safe 守护进程启动mysql数据库时,使用了 --defaults-file=<配置文件的绝对路径>参数,这时只会使用这个参数指定的配置文件。

        优先级结论:

        • 1、命令行
        • 2、defaults-file
        • 3、配置文件
        • 4、预编译

        2.初始化配置文件的使用

        初始化配置文件功能

        1)影响实例的启动(mysqld)
        2)影响到客户端

        • mysql
        • mysqldump
        • mysqladmin

        如何配置初始化配置文件

        1)配置标签分类
        [client]所有客户端程序
        mysql
        mysqldump
        ...

        [server]所有服务器程序
        mysqld
        mysqld_safe
        ...

        六.MySQL多实例配置

        • 1.什么是多实例

        1)多套后台进程+线程+内存结构

        2)多个配置文件
        a.多个端口
        b.多个socket文件
        c.多个日志文件
        d.多个server_id

        3)多套数据

        • 2.多实例实战
        #创建数据目录
        [root@db01 ~]# mkdir -p /data/330{7..9}
        #创建配置文件
        [root@db01 ~]# touch /data/330{7..9}/my.cnf #编辑3307配置文件 [root@db01 ~]# vim /data/3307/my.cnf [mysqld] basedir=/application/mysql datadir=/data/3307/data socket=/data/3307/mysql.sock log_error=/data/3307/mysql.log log-bin=/data/3307/mysql-bin server_id=7 port=3307 [client] socket=/data/3307/mysql.sock #编辑3308配置文件 [root@db01 ~]# vim /data/3308/my.cnf [mysqld] basedir=/application/mysql datadir=/data/3308/data socket=/data/3308/mysql.sock log_error=/data/3308/mysql.log log-bin=/data/3308/mysql-bin server_id=8 port=3308 [client] socket=/data/3308/mysql.sock #编辑3309配置文件 [root@db01 ~]# vim /data/3309/my.cnf [mysqld] basedir=/application/mysql datadir=/data/3309/data socket=/data/3309/mysql.sock log_error=/data/3309/mysql.log log-bin=/data/3309/mysql-bin server_id=9 port=3309 [client] socket=/data/3309/mysql.sock #初始化3307数据 [root@db01 ~]#/application/mysql/scripts/mysql_install_db \ --user=mysql \ --defaults-file=/data/3307/my.cnf \ --basedir=/application/mysql --datadir=/data/3307/data #初始化3308数据 [root@db01 ~]#/application/mysql/scripts/mysql_install_db \ --user=mysql \ --defaults-file=/data/3308/my.cnf \ --basedir=/application/mysql --datadir=/data/3308/data #初始化3309数据 [root@db01 ~]#/application/mysql/scripts/mysql_install_db \ --user=mysql \ --defaults-file=/data/3309/my.cnf \ --basedir=/application/mysql --datadir=/data/3309/data #修改目录权限 [root@db01]# chown -R mysql.mysql /data/330* #启动多实例 [root@db01]# mysqld_safe --defaults-file=/data/3307/my.cnf & [root@db01]# mysqld_safe --defaults-file=/data/3308/my.cnf & [root@db01]# mysqld_safe --defaults-file=/data/3309/my.cnf & #查看server_id [root@db01]# mysql -S /data/3307/mysql.sock -e "show variables like 'server_id'" [root@db01]# mysql -S /data/3308/mysql.sock -e "show variables like 'server_id'" [root@db01]# mysql -S /data/3309/mysql.sock -e "show variables like 'server_id'"

转载于:https://www.cnblogs.com/martin-wang/p/10607455.html

第三章·MySQL版本区别及管理相关推荐

  1. 【面试宝典】软件测试工程师2021烫手精华版(第三章Mysql基础篇)

    第三章 Mysql 基础 一. 基础知识 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库 什么是关系型数据库,主键,外键,索引分别是什么? 关系型数据库是由多张能 ...

  2. 《php开发典型模块大全》读书笔记 第三章 mysql数据库基础

    第三章  mysql基础 show columns  from table describe table alter table 修改表 rename   table   t1  to   t2 整型 ...

  3. IA-32系统编程指南 - 第三章 保护模式的内存管理【1】

    第三章 保护模式的内存管理[1] [作者:lion3875 原创文章 参考文献<Intel 64 and IA-32 system programming guide>] IA-32保护模 ...

  4. mysql 导入百万级数据 几种 java_Java 修行第034天--执行计划及其使用--Oracle数据导入导出--第三章MySQL使用...

    执行计划中牢记几句话: -- 尽量避免是*代替所有列,编写查询语句时使用具体列名代替*,可以防止全表扫描 -- 尽可能少的使用like关键字进行模糊查询 -- 建立适当的索引可以提高查询效率 十三. ...

  5. mysql 索引 ppt_第三章 MySQL索引.ppt

    第三章 MySQL索引 MYSQL索引 课程介绍 本课程主要介绍了MySQL数据库的表达式运算符.MySQL函数,索引的用法.存储过程的使用,视图和触发器等方面的知识, 以应用为目标,具有较强的实践性 ...

  6. IA-32系统编程指南 - 第三章 保护模式的内存管理【2】

    第三章 保护模式的内存管理[2]     [作者:lion3875 原创文章 参考文献<Intel 64 and IA-32 system programming guide>]     ...

  7. mysql 管理instance_MySQL从零开始——第三章 MySQL体系结构

    一.数据库和数据库实例的概念 在数据库领域中有2个词很容易混淆--数据库(database)和实例(instance) 1.数据库 物理操作系统文件或其他形式文件类型的集合.在MySQL数据库中,数据 ...

  8. #边学边记 第三章 信息系统安全、服务管理与规划之信息系统安全技术

    本章从2022年9月14日上午10时开始,通过视频学习第一遍,共分为六个章节,分别是信息系统安全技术.信息化发展与应用.信息系统服务管理.信息系统规划.企业首席信息官及其职责 5个小节. 信息安全的有 ...

  9. MySQL数据库https接口_第三章 mysql 数据库接口程序以及SQL语句操作

    mysql  数据库接口程序以及SQL语句操作 用于管理数据库: 命令接口自带命令 DDL:数据定义语言(create drop ) DCL: 数据控制语言(grant revoke) DML: 数据 ...

最新文章

  1. CS-APP:Section 5.1,Memory aliasing :看上去逻辑一样,执行结果一样吗?
  2. python用WMI等获取及修改windows系统信息
  3. 一起谈.NET技术,Expression Blend中文教程 - 开篇
  4. Optimal Strategy 组合数,dp,博弈论(济南)
  5. 软件工程第一周-评论三部软件作品
  6. 数据拆分_数据拆分,偏方请拿好
  7. python爬虫urllib 数据处理_Python 爬虫笔记之Urllib的用法
  8. datagrip将一个数据库中的数据_跨平台数据库管理神器DataGrip,用上就爱不释手...
  9. Table Store实时数据通道服务Go SDK快速入门
  10. 1月13 ROS中的TF与URDF——机器人(1.1位姿几何基础——刚体位置和姿态描述)
  11. SEO经验分享之百度知道篇
  12. Win7 64位系统安装 Windows XP 虚拟机
  13. GWmodel | 地理加权模型(Ⅱ-2):如何查看地理加权回归的显著性
  14. 网线的交叉线和直通线原理
  15. Linux使用sendmail邮件监控[运维监控]
  16. 小白的25天CTF征程
  17. 利用Python实现视频中人物的人脸转换超详细教程
  18. HTML5 极简的JS函数
  19. 你是真的“C”——宏与函数的英雄本色
  20. max9286 四合一_美信推出GMSL四通道解串器MAX9286

热门文章

  1. grDevices | R语言中的配色方法汇总(Ⅱ-1)
  2. HTML5开发APP有哪些优点和缺点?HTML5优势和劣势大对比
  3. Java 中的接口有什么作用?为什么不直接用类?
  4. 为什么word中插入对象会自动关闭word_你常常忽视的Word文本操作小技巧
  5. keeko机器人_机器人零距离,创意搭建编程妙趣多!——瑞云社区开展全国科普日活动...
  6. 在Linux添加网卡,Centos(RHEL) 6 添加网卡的方法
  7. python多用户登录_python 多用户登录
  8. php插入方法,有什么办法能把一条php语句插入到方法里呢?
  9. SpringBoot中扩展SpringMVC
  10. NYOJ-括号配对问题(数据结构)