升级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
sudo 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文件占用空间可以#屏蔽即可

 
         

在nginx上安装ModSecurity和 OWASP CRS(debian9)

心血来潮,想在nginx上配置个WAF,经多方搜索,最终选择ModSecurity.选择这个,一方面是因为开源,二方面是官方更新比较勤,而这类应用拼的就是防护规则~好吧,话不...

给Linux VPS折腾上totp(两步验证)用于登录验证

之前提到过使用密钥登录SSH,这种方式禁用了密码,安全性上是没问题的。。。除非,你的私钥也泄露啦~不怕,为了应对这种极端情况,我们不妨弄个2FA组成“多重...

用Telegram 搭建图床?这个可以有

万物皆可图床!今天来介绍用利用Telegram搭建网盘的开源项目:tgfilestream 。我这里用的是fork版,这里推荐使用这个或者这个。这里推荐“TG-Files-to-Link”这...

推荐几个2020年可用的免费SSL证书

推荐几个2020年可用的免费ssl证书,现在给网站上小绿锁是大势所趋,SSL证书一般价格都不菲,如果非特殊需求用免费的SSL证书就够用了~ 亚洲诚信一年域名 网...

自建密码管理器:强烈推荐bitwarden_rs

今天推荐个密码管理程序bitwarden的第三方版bitwarden_rs,是时候抛弃chrome自带的密码管理啦~要问我为什么转投bitwarden的怀抱?其实很简单,chrome浏览器自...

吃螃蟹~试着在debian上使用xanmod内核,

听说升级linux内核会有安全和性能上的加成,目前小鸡用的是Linux version 4.9.0-12-amd64内核,本着“吃螃蟹”的态度,今天试试更新到5.6.14版本的内核,看看有...