docker修改mysql配置

查看容器是否启动成功

docker ps

进入容器

docker exec -it 1383f2e49cb7 /bin/bash
查看配置

more /etc/mysql/mysql.conf.d/mysqld.cnf
 

编辑配置

第一种方式:将配置从容器中copy到宿主机

docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /root/mysqld.cnf 
将修改后的配置copy到容器
 
docker cp /root/mysqld.cnf mymysql:/etc/mysql/mysql.conf.d/ 

接下来重启容器就可以了 

docker restart 1383f2e49cb7 
 
 

问题解决:

[mysqld]

skip-name-resolve
innodb_flush_log_at_trx_commit=0
sync_binlog=0

方法解析:

skip-name-resolve:跳过域名解析,对有些场景很管用,但对我遇到的不怎么管用。

    设置这个以后,速度只有一点点提升(2秒  -> 1秒9)。

innodb_flush_log_at_trx_commit=0: 这个选项决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为”同步”)到硬盘上。设置值0的意思是每隔一秒写一次日志并进行 同步,这可以减少硬盘写操作次数,但可能造成数据丢失; 设置值1(设置设置)的意思是在每执行完一条COMMIT命令就写一次日志并进行同步,这可以防止数据丢失,但硬盘写操作可能会很频繁; 设置值2是一般折衷的办法,即每执行完一条COMMIT命令写一次日志,每隔一秒进行一次同步。

    设置这个以后,速度有很大提升(1秒9  -> 1秒)。

sync_binlog=0:每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。设为1是最安全的做法,但效率最低。docker中默认设置是1,意思是由操作系统来负责二进制日志文件的同步工作。

    设置这个以后,速度有显著提升(1秒  -> 30毫秒)。
 

发布了31 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Jonny_jun_gao/article/details/105224434
今日推荐