升级mysql至8.0提升性能体验 | 垃圾君⑨

升级mysql至8.0提升性能体验

博主对比了php发现mysql步子迈的更大——从5.x直接升级到了8.x,一般版本号的跨越都会有新的功能特性加进来,MySQL也是一样的,实际安装体验后发现没有了mysql-safe进程,据说在大流量并发下会有接近一倍的性能提升,对于我等小博客来说,虽没法体验但还是有吸引力的。
现在博主就实际升级新版mysql并开始“服役”,发现wordpress完美支持,这也算一样惊喜吧

用APT源安装

在升级前,你需要备份你的数据库,我这里用了adminer,单文件,丢到网站根目录就好,怕不安全你可以把文件改成随机.

登陆服务器后台,由于服务器性能太辣鸡,于是选择用官方的apt安装,实际这种办法是最快捷安全的,因为源码编译方式没有1G以上内存/10G以上硬盘是搞不定的!

打开https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/ 依照教程,运行以下命令

wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
duso dpkg -i mysql-apt-config_0.8.10-1_all.deb
sudo apt-get update

这时你会发现下图,选择OK,一路回车即可,
再运行 sudo apt-get install -y mysql-server 即可。安装过程中需要你设置密码/选着密码加密方式(sha2)选择的问题(如下图),回车即可,有需求可以回来再改。

不好用,怎么卸载呢

卸载其实也很简单,就和其他apt-get 安装的软件一样卸载,运行以下命令

sudo service mysql stop
sudo apt-get remove mysql-server 
sudo apt-get autoremove 
sudo rm -rfv /etc/mysql /var/lib/mysql

大功告成,如果你还想安装旧版本的Mysql,运行 sudo dpkg-reconfigure mysql-apt-config 重新选择版本 安装即可。如果不放心卸没卸干净,运行 dpkg -l | grep mysql | grep ii 把获取的安装包名称用 sudo apt-get remove [包名] 即可。想修改密码的话用ALTER user ‘root’@’localhost’ IDENTIFIED BY ‘密码’;

新版虽好,但内存占用有点大

的确有这个问题,top查看发现小鸡的内存吃的一干二净,这可不行,修改 vi /etc/mysql/mysql.cnf ,把下面那一坨覆盖进去,保存,service mysql restart 即可。

[mysql]
prompt="MySQL [d]> "
no-auto-rehash

[mysqld]
socket		= /var/run/mysqld/mysqld.sock
pid-file	= /var/run/mysqld/mysqld.pid
datadir		= /var/lib/mysql
user = mysql
server-id = 1
#skip-networking
back_log = 300
max_connections = 170
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 500M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 4M
thread_cache_size = 8
ft_min_word_len = 4
log_bin = mysql-bin
binlog_format = mixed
binlog_expire_logs_seconds = 604800
log-error	= /var/log/mysql/error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
performance_schema = 0
explicit_defaults_for_timestamp
#lower_case_table_names = 1
skip-external-locking
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 28800
wait_timeout = 28800
[mysqldump]
quick
max_allowed_packet = 500M

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
symbolic-links=0

重启即可,不想log文件占用空间可以#屏蔽即可

 
         

记一次恢复删除文章过程

今天看邮箱发现谷歌发邮件温馨提醒“成人:色情内容”,结果打开相关网页后发现并没有什么“违规”的地方,个人猜测可能文章命中谷歌Adsense内部的关键词系...

分享几个E5账户

目前微软E5很好申请,有效期为90天,90天内保持活跃即可无限续期~目前大众可用的保活方式为API调用(比如开个onelist)结合博主之前提到的heroku搭建网盘,还...

要玩坏啦~用图床传视频

有MJJ突发奇想发现图床可以这么用~了解一点m3u8的同学会知道,一大段视频是由很多个小段 .ts文件组成的,那摩如果某个图床接口没能正确过滤文件格式仅是以后...

躲在家不知干什么?不妨回温《工作细胞》

新年“躲”在家不知干什么好?不如重温18年动画《工作细胞》~大概谁也不会想到,18年的动画到现在还有“科普价值”,像里面描述“打喷嚏”的片段,可以很好解释身体...

wordpress优化之取消转义

算是wordpress小技巧,对外链/代码有效,原理是禁用wptexturize()函数,玩过wp的肯定会发现这个问题的~解决起来也很简单,只需禁用这个函数即可 //取消内容转...

迷糊轻小说即将限时开放注册~

手机里固定安装的轻小说客户端“迷糊轻小说”春节限时开放注册~每年仅限一次,去年有贴吧网友称国庆有可能开放注册,结果蹲了好几天也没个消息。。。这次消息准...