如何在服务器部署MySQL
作者:jyx_boy
1.在服务器opt 新建文件夹 mysql/data,新建文件 mysql/conf.d/my.cnf
其中my.cnf 内容如下
[mysqld] log_timestamps=SYSTEM default-time-zone='+8:00' server-id=1 log-bin=mysql-bin binlog-do-db = mall # 要监听的库 binlog_format=ROW
配置解读:
① server-id :指定当前服务的id,必须指定,否则会报错
② log-bin :设置binlog文件的存放地址和文件名,叫做mysql-bin,此处指定的目录前缀是mysql容器的数据存放目录,所以可以在挂载目录中看到相关的文件,命名格式是mysql-bin.000001开始慢慢叠加
③ binlog-do-db :指定针对哪个数据库记录binlog的events事件,此处记录mall库
如果在 MySQL 配置中没有显式地配置 binlog-do-db 参数,那么 MySQL 的二进制日志(binlog)将会记录所有数据库的变更操作。
binlog-do-db 参数用于指定需要被记录到 binlog 中的数据库。通过配置 binlog-do-db,你可以选择只记录指定的数据库的变更操作,而忽略其他数据库的变更操作。
如果没有配置 binlog-do-db 参数,或者将其设置为一个空值(例如 binlog-do-db=),那么 MySQL 将会监听并记录所有数据库的变更操作到 binlog 中。
需要注意的是,即使没有配置 binlog-do-db 参数,你仍然可以通过其他方式(如 MySQL 的权限控制)来限制用户对数据库的操作权限,从而间接地控制 binlog 中的记录内容
4. binlog_format
在 MySQL 配置中,binlog_format 是用于配置二进制日志(binlog)的格式。binlog 是 MySQL 中用于记录数据库的变更操作的日志文件。
binlog_format 可以设置为以下几种值:
1. STATEMENT:以 SQL 语句的形式记录数据库的变更操作。这种格式记录的是每个执行的 SQL 语句,可以通过 replay SQL 语句的方式来还原数据变更。但是,由于某些情况下,同一个 SQL 语句在不同的数据库上执行可能会产生不同的结果,所以在使用 STATEMENT 格式时需要注意一致性问题。
2. ROW:以行的形式记录数据库的变更操作。这种格式记录的是每一行数据的变更情况,包括被修改、插入或删除的数据。ROW 格式记录了更加详细和精确的变更信息,但相对于 STATEMENT 格式来说,会占用更多的存储空间。
3. MIXED:混合模式,根据具体的情况自动选择 STATEMENT 或 ROW 格式来记录数据库的变更操作。MIXED 模式会根据 SQL 语句的类型和特性来决定使用哪种格式,以达到性能和存储空间的平衡。
binlog_format 的选择需要根据实际需求和应用场景来决定。不同的格式具有不同的优缺点,需要根据具体情况来进行权衡和选择
2.启动数据库
docker run --name mysql01 \ -p 3306:3306 \ -v /opt/mysql/conf.d:/etc/mysql/conf.d \ -v /opt/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:8.0
3.校验是否开启成功
show variables like 'log_%'; show variables like 'binlog_format'; show variables like 'server_id'; --查看所有日志 show binlog events; --查看最新的日志文件 show master status -- 查询指定的binlog日志 show binlog events in 'XTZJ-20221008CY-bin.000020' --清空所有的 binlog 日志文件reset master
DML与DDL
MySQL中,DML(Data Manipulation Language)和DDL(Data Definition Language)是两种不同类型的SQL语句,它们分别用于不同的数据库操作目的:
DML(数据操作语言): DML语句主要用于对数据库表中的实际数据进行操作,主要包括以下几种命令:
INSERT
:向表中插入新的行数据。
UPDATE
:更新表中已存在的行数据。
DELETE
:从表中删除满足特定条件的行数据。
SELECT
:从表中检索数据,虽然SELECT
不改变数据本身,但因其属于对数据的操作,所以也被归类于DML。
DML操作通常发生在事务中,可以被用户手动控制事务的开启、提交和回滚,确保数据的一致性和完整性。
DDL(数据定义语言): DDL语句主要用于创建、修改或删除数据库的结构元素,例如:
CREATE
:创建新的数据库、表、索引、视图等。
ALTER
:更改现有数据库对象的结构,例如增加或删除列,修改列的数据类型,重命名表等。
DROP
:删除数据库对象,如表、索引、视图等。
TRUNCATE
:清空表的内容,但保留表的结构。
到此这篇关于如何在服务器部署MySQL的文章就介绍到这了,更多相关服务器部署MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!