新拿到的主机,里面什么都没有。从数据库开始安装。先用 yum list mysql* 查看了一下,没有任何Mysql相关的内容。然后开是安装,yum install mysql-server mysql-devel mysql 一路y的顺利结束。找到密码,登录root修改密码很顺利。创建库,创建用户后用工具远程连接没有发现任何问题。可是用开发的java程序连接不成功,提示连接无法通过验证。可是相同用户名密码用SQLyog 正常连接。百度后提示是Jdbc版本问题,查看jdbc 8.0.11 , select version(); 显示5.7。尝试降级jdbc成5.1之后,开发环境又连不上了。开始了长达两个小时的折腾之旅。
分析了一下,如果降版本后,开发机上的mysql同样需要降版本。而且还有几个存储过程和事件,在5.7的版本上能不能跑还不确定。而且迟早要接触到8.0.11,何不先尝试着用一下呢,决定升级Mysql到8.0.11。
1,先卸载 yum remove mysql-server mysql-devel mysql ,成功卸载。
yum remove mysql-server mysql-devel mysql
2,想用yum 安装,从网上找了个源
yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
sudo yum install mysql-community-server
提示:
Error: Package: mysql-community-server-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libsasl2.so.3()(64bit)
3,安装 yum install cyrus-sasl cyrus-sasl-devel 后该问题解决,出先新问题。
Error: Package: mysql-community-libs-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
Error: Package: mysql-community-server-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libc.so.6(GLIBC_2.17)(64bit)
4,最后升级 libstdc++ 和 glibc-2.17 之后,用 strings /lib64/libc.so.6 | grep GLIBC 查看版本都符合要求了。可是依然报依赖包的版本错误。
Error: Package: mysql-community-server-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.7)(64bit)
Error: Package: mysql-community-server-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
Error: Package: mysql-community-libs-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.5)(64bit)
Error: Package: mysql-community-server-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.5)(64bit)
Error: Package: mysql-community-server-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
Error: Package: mysql-community-client-8.0.11-1.el7.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.5)(64bit)
Error: Package: perl-DBD-MySQL-4.013-3.el6.x86_64 (@os)
Requires: libmysqlclient.so.16(libmysqlclient_16)(64bit)
Removing: mysql-libs-5.1.73-8.el6_8.x86_64 (@anaconda-CentOS-201703281317.x86_64/6.9)
libmysqlclient.so.16(libmysqlclient_16)(64bit)
Obsoleted By: mysql-community-libs-8.0.11-1.el7.x86_64 (mysql80-community)
Not found
5,感觉应该是一个bug,从网上查了查也没有头绪。放弃了yum安装,重新开始下载rpm安装。
官网下载:mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar
解包之后,按照下面顺序安装。
rpm -ivh mysql-community-common-8.0.11-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.11-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-8.0.11-1.el6.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.11-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-8.0.11-1.el6.x86_64.rpm
6,安装最后一个的时候,提示需要glibc2.18。下载编译安装后,执行通过。
7,sercvice mysqld start启动失败,查看mysqld.log ,发现数据文件设定路径不存在,创建后启动成功。
8,用随机密码登录成功,修改密码
grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
9,但是远程工具连接不上。用命令行执行下面SQL创建用户和数据库后连接成功。
insert into mysql.user (host,user) values ('%','root');
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
create user 'jpy'@'%' identified by password';
grant all privileges on *.* to 'root'@'%' ;
grant all privileges on *.* to 'jpy'@'%' ;
create database jpy_dev;
10,把开发机上的数据导入后,程序成功连接成功。mysql服务器安装完成。