mysql5.7-05-my.cnf配置(待完善)
show variables like 'max_allowed_packet'; 所有系统已生效的值可以用这个来查询
需要先操作:
mkdir /opt/data/binlog chown -R mysql.mysql /opt/data/binlog
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] user=mysql basedir=/opt/app/mysql datadir=/opt/data/mydb server_id=6 port=3306 socket=/tmp/mysql.sock default_storage_engine=INNODB (默认) character_set_server=utf8mb4 collation_server=utf8mb4_general_ci skip-name-resolve #跳过dns解析 back_log=888 //默认888,如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中 max_allowed_packet=100M #默认4M,为MySQL服务器和客户端(包括副本)之间的任何单个消息的大小设置上限
max_connections=10000 # 最大连接数,经测试16核心、8G内存,并发2千0.411秒,并发3千3.402秒
#####InnoDB######### innodb_file_per_table=1 (默认) #开启独立表空间 innodb_data_file_path=ibdata1:1G:autoextend #设置初始化表空间大小 #innodb_autoextend_increment=64 #可以不要,系统默认值 innodb_flush_log_at_trx_commit=1 #高安全模式(生产使用) innodb_flush_method=O_DIRECT #sync_binlog=0 # #默认为0,设置为1数据安全性高了,但性能也下降5倍不少;#https://www.cnblogs.com/Cherie/p/3309503.html #innodb_flush_log_at_trx_commit=0 #高性能模式 #innodb_flush_method=fsync ######redo########### innodb_log_buffer_size=16M innodb_log_file_size=128M //默认50M,180M,3~4组,轮询使用 innodb_log_files_in_group=3 innodb_buffer_pool_size=1073741824 #缓存池,实际是物理内存的的80%,这里为1G; #innodb自动提交策略 #autocommit=0 #默认等于1,开启 #########gtid#############默认就是开启的 gtid-mode=on enforce-gtid-consistency=true ########error_log######### log_error=/opt/data/mydb/mysql_error.log ########slow_log########## slow_query_log=1 #开启慢查询 slow_query_log_file=/opt/data/mydb/mysql_slow.log long_query_time=2 #超过2秒记录到慢查询中 log-queries-not-using-indexes=on #不走索引的语句也记录到慢查询中 log_timestamps=system #这个参数主要是控制 error log、slow_log、genera log,等等记录日志的显示时间参数,参数默认使用 UTC 时区,这样会使得日志中记录的时间比中国这边的慢了 8 个小时,导致查看日志不方便。修改为 SYSTEM 就能解决问题。 #########bin_log########## log_bin=/opt/data/binlog/mysql-bin binlog_format=row *****这里还需要设置binlog文件大小,保留时间****** #########OTHERT################ explicit_defaults_for_timestamp #不开启会报错 [mysql] socket=/tmp/mysql.sock #prompt=3306 [\\d]> #prompt="3306: \\d \\r:\\m:\\s>" prompt=\u@master \\r:\\m:\\s >
python3