如果使用的是宝塔管理面板的化,是不允许1G内存的服务器安装mysql5.7的。经过一番查找终于实现在1G内存的服务器上安装好mysql5.7,但是运行一段时间后发现服务器经常内存、CPU占用特别高导致服务器宕机(也不知道是不是有人在ddos攻击我的服务器,反正有很多尝试访问不存在的url请求,估计是在探测扫描可能存在的后面地址)。就1核CPU+1G内存来说但凡是个有心人要搞你,基本上网站很难防的住,但是有时候如果数据库查询过慢又没有进行一些其他缓存加速类的优化,在同时访问人数较多的情况下网站响应会很慢!昨天趁着有空在网上找了些1G内存mysql参数调优的文章,最终修改了mysql的一些参数,感觉内存及cpu占用还是有所下降。
免责说明:本文的mysql参数调整后已测试在我的云服务器环境运行正常,不代表完全适用于所有网友的服务器配置,仅作参考,如果服务器运维及配置不熟悉的朋友请勿操作!

将上面的参数调整下其实就差不多了,还有一些增加的小配置就不再单独赘述,下面贴上配置文件(禁止直接将本文配置文件直接复制,因mysql安装环境的不同直接复制可能会导致不可逆的后果!):
我记得好像增加、修改了这两个配置参数 interactive_timeout=120 和 wait_timeout =120
[client]#password = your_passwordport = 3306socket = /tmp/mysql.sock[mysqld]binlog_cache_size = 32Kthread_stack = 256Kjoin_buffer_size = 256Kquery_cache_type = 1max_heap_table_size = 64Mport = 3306socket = /tmp/mysql.sockdatadir = /www/server/datadefault_storage_engine = InnoDBperformance_schema_max_table_instances = 400table_definition_cache = 400skip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 100Gtable_open_cache = 256sort_buffer_size = 1024Knet_buffer_length = 4Kread_buffer_size = 1024Kread_rnd_buffer_size = 256Kmyisam_sort_buffer_size = 4Mthread_cache_size = 32query_cache_size = 32Minteractive_timeout=120tmp_table_size = 64Msql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESexplicit_defaults_for_timestamp = true#skip-name-resolvemax_connections = 120max_connect_errors = 100open_files_limit = 65535wait_timeout =120log-bin=mysql-binbinlog_format=mixedserver-id = 1expire_logs_days = 10slow_query_log=1slow-query-log-file=/www/server/data/mysql-slow.loglong_query_time=3#log_queries_not_using_indexes=onearly-plugin-load = ""innodb_data_home_dir = /www/server/datainnodb_data_file_path = ibdata1:10M:autoextendinnodb_log_group_home_dir = /www/server/datainnodb_buffer_pool_size = 64Minnodb_log_file_size = 5Minnodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 1innodb_lock_wait_timeout = 50innodb_max_dirty_pages_pct = 90innodb_read_io_threads = 1innodb_write_io_threads = 1[mysqldump]quickmax_allowed_packet = 500M[mysql]no-auto-rehash[myisamchk]key_buffer_size = 20Msort_buffer_size = 20Mread_buffer = 2Mwrite_buffer = 2M[mysqlhotcopy]interactive-timeout
调整完重启mysql服务后,mysql的内存占用基本稳定在12%以下,CPU占用也很小。在使用top查看内存占用时发现有个java进程占用比较高,因为我服务器上没有跑java程序就直接kill掉了。

温馨提示:如果本文还没解决你的问题,可以尝试百度搜索“1g内存 mysql5.7优化”
发表评论