修改数据存储路径
查询存储路径
mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir';"
修改配置文件
vim /etc/mysql/my.cnf
```````````
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
```````````
复制数据
sudo cp -r /var/lib/mysql/* /data/mysql
重启MySQL服务
systemctl restart mysqld
设置缓存
配置文件
# 启用查询缓存
query_cache_type = 1
query_cache_size = 1073741824
#引擎缓冲区
innodb_buffer_pool_size = 4096M
重启MySQL服务
systemctl restart mysqld
查询缓存设置
# 查询缓存设置状态
SHOW VARIABLES LIKE 'query_cache_type';
# 启用查询缓存并设置大小
SET GLOBAL query_cache_type = ON;
SET GLOBAL query_cache_size = 268435456;
# 缓存容量查询
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'key_buffer_size';
SHOW VARIABLES LIKE 'query_cache_size';
二进制文件
修改配置文件启用二进制日志
# 这个ID在主服务器和从服务器之间必须唯一
server-id=1001
# 指定二进制日志的位置
log_bin = /data/logs/mysql-bin.log
# 设置保存天数
expire_logs_days = 10
# 设置日志最大容量
max_binlog_size = 1024M
SQL命令
# 开关二进制日志写入
SET SQL_LOG_BIN=0/1;
# 查看开启状态
SHOW VARIABLES LIKE 'log_bin';
# 查看日志列表
SHOW binary logs;
# 查看正在写入的二进制日志文件
SHOW master status;
# 删除所有
RESET MASTER;
# 根据编号删除
PURGE MASTER LOGS TO 'filename.number';
# 删除某文件以前的
PURGE MASTER LOGS TO 'mylog.000004';
# 删除某日期以前的
PURGE MASTER LOGS TO 'yyyy-mm-dd hh:MM:ss';
# 阅读二进制日志
mysqlbinlog -v -d db_name --start-datetime="2024-03-06 11:40:17" --stop-datetime="2024-03-06 11:40:21" mysql-bin.000155
# 导出
mysqlbinlog -v --base64-output=decode-rows -d db_name --start-datetime="2024-03-06 11:40:17" --stop-datetime="2024-03-06 11:40:21" mysql-bin.000155
主从复制状态检测
# 查看从库状态
SHOW SLAVE STATUS\G;
# 跳过错误
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 100;
# 停止复制
STOP SLAVE;
# 开始复制
START SLAVE;