Total Pageviews

Wednesday, 21 June 2017

debian/Ubuntu下,安装/平滑升级 MySQL 到 5.7(建议不要搞编译安装,编译安装太费事了,还可能搞不定)

wget http://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.deb
dpkg -i mysql-apt-config_0.8.1-1_all.deb
需要注意的是在添加源那一步的时候,会叫你选择安装 MySQL 哪个应用,这里选择 Server 即可,再选择 MySQL 5.7 后又会回到选择应用的那个界面,此时选择ok即可。

apt-get update
apt-get install mysql-server (此时,安装的mysql-server的版本就是5.7版而非5.5
版)

如果提示:mysqld: Can’t create/write to file ‘/var/lib/mysql/is_writable’,试着执行:
chown mysql /var/lib/mysql
chgrp mysql /var/lib/mysql

root@ary:~# mysql --version
mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
root@ary:~#
配置文件在/etc/mysql/里面。

安装完之后还需执行一下:mysql_upgrade -u root -pyour_pw 更新数据(重要.如果你以前安装了mysql)

一般会出现一点小插曲。我在 MySQL 自动启动的时候起不来了:

也没看见日志在哪儿,在 /etc/mysql 目录下找日志的时候发现多了个 my.cnf.dpkg-dist 文件,对比一下发现和原来的 my.cnf 不太一样呀,把原来的 my.cnf 备份后使用这个文件替换掉。再次启动 MySQL 果然 OK 了。


参考https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
----------------------------------

关于配置优化,介绍一个好网站:http://tools.percona.com/ (Free online productivity tools for MySQL DBAs, SysAdmins and Developers)。我 1 CPU,1 GB RAM 的配置如下:
我在启动的时候,查看 error.log 日志,发现了一些错误,下面是其解决方法:
[Warning] Could not increase number of max_open_files to more than 4096 (request: 65535)
解决办法:vim /etc/security/limits.conf,然后添加几行:
目的是增大文件打开数,提升一定的性能,适当即可。
plugin load error:
解决办法:看样子是这几个插件已经内置了,无需加载。查看 plugin 表里面也就这几个插件:
直接 truncate mysql.plugin 即可。
[Warning] CA certificate ca.pem is self signed.
解决办法:这个警告是因为使用了自签证书(猜测),即使开启传输加密也有被中间人攻击的风险,可以买个权威 CA 机构颁发的证书。我们这里就直接忽略这个错误了。
[Warning] ‘user’ entry ‘root@localhost’ ignored in –skip-name-resolve mode.
解决办法:这个可以忽略,因为我们设置 skip-name-resolve,禁用了 DNS 查询。(If you have a very slow DNS and many hosts, you might be able to improve performance either by disabling DNS lookups with –skip-name-resolve or by increasing the value of host_cache_size to make the host cache larger.)
启动的时候显示 “No directory, logging in with HOME=/”。
解决办法:这是 MySQL 的命令行日志,日志路径由环境变量 MYSQL_HISTFILE 指定。若系统中没有此环境变量,就会默认在 ~ (当前用户根目录)下生成 .mysql_history 隐藏文件,类似于 .bash_history,有一定的安全风险。如果你不想要这个文件,除了修改环境变量 MYSQL_HISTFILE 外,还有一个比较好的方式就是将文件软链接到 /dev/null(ln -s /dev/null $HOME/.mysql_history)。
参考资料:
《A Quick Guide to Using the MySQL APT Repository》http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
《Changes Affecting Upgrades to MySQL 5.7》https://dev.mysql.com/doc/refman/5.7/en/upgrading-from-previous-series.html
http://dba.stackexchange.com/questions/65397/error-function-innodb-already-exists
https://dev.mysql.com/doc/refman/5.7/en/mysql-logging.html














 

No comments:

Post a Comment