拓展知识
目录
一、MySQL数据库目录结构以及存放位置
二、MySQL Enterprise Backup
三、MySQL读写分离器
四、进程和线程
五、CentOS 7 中配置静态 IP
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目录中。
是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
其中,用户名、密码和备份文件路径需要替换成实际的值。
是用于分配数据库请求在主从库中分配的工具,常用的有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. 线程的创建、执行和销毁开销均比进程小,线程之间切换的时间也较短。
总的来说,进程和线程都是操作系统中重要的执行单位,进程是资源分配和调度的基本单位,而线程是进程中的独立执行
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 了。