从小白到大神之路之学习运维第37天---第三阶段---mysql数据库之拓展知识

拓展知识

目录

一、MySQL数据库目录结构以及存放位置

二、MySQL Enterprise Backup

三、MySQL读写分离器

四、进程和线程

五、CentOS 7 中配置静态 IP


一、MySQL数据库目录结构以及存放位置

    1. 数据库存储目录:MySQL数据库的数据文件存储在指定的数据目录下。MySQL安装时默认数据目录在Linux系统中为/var/lib/mysql,Windows系统中为C:\Program Files\MySQL\MySQL Server\data。可以通过my.cnf文件中的datadir参数设置自定义的数据目录。
        /var/lib/mysql
    2.日志文件目录:MySQL的日志文件通常存储在MySQL安装目录下的./data目录或者是自定义的log_error参数的目录下。具体包括错误日志、二进制日志、慢查询日志、查询缓存等日志文件。
        /var/log
    3. 配置文件目录:MySQL的配置文件存储在MySQL安装目录下的./etc目录或自定义的配置文件目录下。
        /etc/my.cnf
    4. 临时文件目录:MySQL的临时文件存储在指定的临时目录下。可以通过my.cnf文件中的tmpdir参数设置自定义的临时目录。
    5. 插件目录:MySQL的插件文件存储在MySQL安装目录下的./lib/plugin目录或自定义的插件目录下。
    6. 其他文件目录:MySQL的其他文件存储在MySQL安装目录下的./share/mysql目录中。

二、MySQL Enterprise Backup

    是Oracle公司提供的一款商业数据库备份和还原工具,具有简单易用、高效可靠的性能及功能强大等特点.
    注意:MySQL Enterprise Backup需要注册Oracle账户,购买授权后使用。


    1. 下载MySQL Enterprise Backup:下载Oracle官网上提供的MySQL Enterprise Backup的安装包,下载链接如下:https://www.oracle.com/downloads/。
    2. 安装MySQL Enterprise Backup:将MySQL Enterprise Backup解压到本地目录,然后配置PATH环境变量。例如,将MySQL Enterprise Backup解压到/opt/meb目录下,并将/opt/meb加入环境变量:
    export PATH=/opt/meb/bin:$PATH
        获得有效许可证。
    3. 创建备份目录:在备份时,MySQL Enterprise Backup将会生成一个备份文件,需要创建一个备份目录来存储备份文件。例如,创建一个备份目录/opt/backup:
        mkdir /opt/backup
    4. 备份MySQL数据库:使用`mysqlbackup`命令备份MySQL数据库,例如使用以下命令备份整个MySQL数据库:
    mysqlbackup --user=<用户名> --password=<密码> --backup-dir=/opt/backup backup-to-image --compress --compress-threads=8 --backup-image=/opt/backup/backup.img
    其中,用户名、密码和备份文件路径需要替换成实际的值。
    5. 恢复MySQL数据库:使用`mysqlbackup`命令恢复MySQL数据库,例如使用以下命令进行MySQL数据库恢复:
    mysqlbackup --user=<用户名> --password=<密码> --backup-dir=/opt/backup copy-back-and-apply-logs
    其中,用户名、密码和备份文件路径需要替换成实际的值。

三、MySQL读写分离器

    是用于分配数据库请求在主从库中分配的工具,常用的有ProxySQL和Maxscale,以下是基于ProxySQL的读写分离器配置步骤:
    1. 安装和启动ProxySQL:参考ProxySQL官方文档,下载并安装ProxySQL,在终端中启动ProxySQL服务。
    2. 配置ProxySQL与主从库的连接:使用ProxySQL提供的管理工具mysql> client来连接到ProxySQL,然后使用以下命令在ProxySQL中添加主从库的连接信息,比如:
        INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (1,'192.168.1.1',3306);
        INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (2,'192.168.1.2',3306);
        其中,hostgroup_id表示主从库的组别,hostname和port是连接主从库的IP地址和端口号。
    3. 配置ProxySQL的规则:接着,设置读写分离的规则,比如:
        INSERT INTO mysql_query_rules (rule_id,active,match_digest,destination_hostgroup,apply)
        VALUES (1,1,'^SELECT.*FOR UPDATE$',2,1);
        INSERT INTO mysql_query_rules (rule_id,active,match_digest,destination_hostgroup,apply)
        VALUES (2,1,'^(INSERT|UPDATE|DELETE).+',1,1);
        其中,match_digest是一个正则表达式,用于匹配与这条规则匹配的查询,destination_hostgroup是该查询应该发送的主从库组。
    4. 配置ProxySQL的用户:在ProxySQL中创建用户并授予数据库访问权限,比如:
        INSERT INTO mysql_users(username,password,default_hostgroup)
        VALUES ('user', 'password', 1);
        INSERT INTO mysql_users(username,password,default_hostgroup)
        VALUES ('user', 'password', 2);
        其中,default_hostgroup是用户的主从库组。
    5. 测试读写分离器:最后,测试读写分离器是否正常工作,比如在应用程序中使用以上创建的用户名和密码连接到ProxySQL,然后观察查询是否正确地发送到主从库。可以参考ProxySQL官方文档中的案例和教程来配置读写分离器。
    ProxySQL是一种比较流行的MySQL读写分离器,它可以自动地将客户端请求分发给主库和从库,从而优化数据库性能和减轻数据库负载。配置ProxySQL需要设置与主从库的连接、规则和用户,并且需要测试验证读写分离器的正常工作。

四、进程和线程

    是操作系统中重要的概念,简单地说,进程就是程序在操作系统中的一个执行过程,而线程是进程执行过程中的一个单独的顺序控制流程。下面分别介绍进程和线程的定义和特点:
    ### 进程
        进程是指操作系统中正在运行的程序,是计算机资源分配和调度的基本单位。每个进程都有自己的地址空间、堆栈、数据段、代码段等资源,进程之间相互独立,互相隔离。进程有以下特点:
        1. 进程是操作系统中共同管理、独立运行的单位。
        2. 同一时间,一个处理器只能执行一个进程,每个进程独享CPU的执行时间。
        3. 进程可以由其他进程派生出来,这些派生出来的进程称为子进程。
        4. 进程有自己的生命周期,包括创建、运行和结束等。
    ### 线程
        线程是进程中的独立执行流,每个线程共享该进程的地址空间和资源,是操作系统中调度和执行的基本单位。线程有以下特点:
        1. 线程是进程中的一个执行单元,是进程的实体,比进程更小。
        2. 一个进程可以包含多个线程,线程之间共享该进程的所有资源。
        3. 同一个进程中的不同线程之间可以并发执行,一个处理器可以处理多个线程。
        4. 线程的创建、执行和销毁开销均比进程小,线程之间切换的时间也较短。
        总的来说,进程和线程都是操作系统中重要的执行单位,进程是资源分配和调度的基本单位,而线程是进程中的独立执行

五、CentOS 7 中配置静态 IP


    1. 打开终端,使用以下命令编辑 ifcfg-ens33 文件:
        sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
    2. 切换到 INSERT 模式,修改以下内容:
        BOOTPROTO=static
        IPADDR=your_static_ip_address
        NETMASK=your_subnetwork_mask
        GATEWAY=your_gateway_ip_address
        DNS1=your_preferred_dns_server
        DNS2=your_alternate_dns_server
    // 示例:
        BOOTPROTO=static
        IPADDR=192.168.1.10
        NETMASK=255.255.255.0
        GATEWAY=192.168.1.1
        DNS1=8.8.8.8
        DNS2=8.8.4.4
    3. 保存并退出 ifcfg-ens33 文件,使用以下命令编辑 /etc/sysconfig/network 文件:
        sudo vi /etc/sysconfig/network
    4. 将以下代码添加到文件末尾:
        NETWORKING=yes
        HOSTNAME=hostname.yourdomain.com
    5. 保存并退出 /etc/sysconfig/network 文件。重启网络服务以使更改生效,使用以下命令:
        sudo systemctl restart network
    6. 使用以下命令检查 IP 地址并测试网络连接:
        ip addr show ens33
        ping google.com
    这样就可以成功地在 CentOS 7 上配置静态 IP 了。

你可能感兴趣的:(数据库,学习)