前置准备
sudo systemctl stop mysqld
注意: 原本配置重命名做备份 备份数据 删文件
直接新建 my.cnf
把配置 11要粘进去的内容 直接粘进去
注意:尽管log-bin 和 log_bin 都可以启用二进制日志,但为了保持与现代MySQL版本的兼容性和一致性,推荐使用log_bin这种写法。
保存退出:
# 备份数据
sudo cp -r /var/lib/mysql /var/lib/mysql_backup
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1
为啥启动服务之前删文件?
修改innodb_log_file_size 后,如果 MySQL 服务无法启动,通常是由于旧的 InnoDB 日志文件大小与新的配置不匹配。为了让 MySQL 能够正确启动,可能需要手动删除旧的 InnoDB 日志文件
具体操作 直接跟着这个走
# 停止 MySQL 服务
sudo systemctl stop mysqld
# 备份数据
sudo cp -r /var/lib/mysql /var/lib/mysql_backup
# 删除旧的 InnoDB 日志文件
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1
mkdir /数据库的安装位置的绝对路径/
不知道的话:
MySQL配置文件,通常被命名为my.cnf,在Linux系统中可能出现在以下几个位置:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf(用户级的配置,~表示用户的主目录)
但是,不同的发行版和安装方式可能会有所差异,
如果MySQL正在运行,可以直接询问它配置文件的位置。运行:
mysql --help
在输出的最后部分可以看到配置文件的路径
# 启动 MySQL 服务
sudo systemctl start mysqld
# 检查 MySQL 服务状态
sudo systemctl status mysqld
# 检查日志文件
tail -f /var/log/mysqld.log
11要粘进去的内容
[client]
port=3306
default-character-set=utf8mb4
[mysqld]
port=3306
basedir=/usr
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# General settings
max_connections=200
character-set-server=utf8mb4
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
server-id=1
# InnoDB 引擎优化
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=2
innodb_file_per_table=1
# 缓存配置
query_cache_size=64M
# query_cache_limit=2M
# 报错日志和慢查询日志配置
slow_query_log=1
slow_query_log_file=/var/log/mysql_slow.log
long_query_time=2
# 其他优化
max_allowed_packet=64M
table_open_cache=400
thread_cache_size=20
# 启用二进制日志
log_bin =/var/lib/mysql/mysql-bin
log_bin -index=/var/lib/mysql/mysql-bin.index
expire_logs_days=10
max_binlog_size=100M
binlog_format=ROW