开始,我默认安装了MySQL8,但是在测试的时候发现通过Hibernate连接之前的MySQL5.7的代码运行在连接新版本的库的时候发生异常,出于时间原因没有深度排查
但是我严重怀疑是版本匹配问题,为了能够快速使用,我选择回退到之前的5.7
整个经历:
安装默认的MySQL8
添加MySQL Yum存储库
https://dev.mysql.com/downloads/repo/yum/
进入这个网站下载默认给的版本8文件
上传到服务器,当然也可以复制URL,使用wget进行下载
安装下载的发行包
rpm -Uvh mysql80-community-release-el7-1.noarch.rpm
然后进行安装
yum install mysql-community-server
根据提示输入 y 并等待下载与安装
安装完成
启动服务以及查看服务是否启动成功
systemctl start mysqld.service
systemctl status mysqld.service
出现active(running)表示服务启动成功
之后可以在设置服务开机启动(不过基本都是默认开机启动的)
systemctl enable mysqld
systemctl daemon-reload
如何完全拆卸MySQL8
rpm -qa |grep -i mysql
查看已经安装的MySQL(我这里已经是安装好5.7版本的情况了)
基本会显示五个
使用命令进行拆卸
yum remove mysql-community mysql-community-server mysql-community-libs mysql-community-common mysql80-community-release
拆卸完成后再使用
rpm -qa |grep -i mysql
进行检查,此时应该没有任何输出
再查看下拆卸残留的配置等
find / -name mysql
全部使用删除命令删除这些文件,如果不删除当安装其他版本的时候,会存在配置不匹配等问题无法启动服务
rm -rf 文件名
无法启动的示例
至此,MySQL就完全拆卸完成了
安装5.7的版本(你需要的版本)
首先使用下面的命令查看所有可用版本(下图中显示的是我已经禁用了8并开启了5.7的情况)
yum repolist all | grep mysql
如何禁用8并开启其他版本:
官网上给出可以执行命令
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
但是我在执行时报语法错误
还有另外一种方法:直接修改配置文件
vim /etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.5 [mysql55-community] name=MySQL 5.5 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.7 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-connectors-community] name=MySQL Connectors Community baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-community] name=MySQL Tools Community baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-preview] name=MySQL Tools Preview baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-cluster-7.5-community] name=MySQL Cluster 7.5 Community baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-cluster-7.6-community] name=MySQL Cluster 7.6 Community baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
其中的
enabled=0表是禁用,=1表示开启
修改后保存并退出,再查看下被开启的版本
yum repolist enabled | grep mysql
现在可以使用安装MySQL的命令进行安装了......
安装完成,同样的命令启动服务并查看状态
至此MySQL5.7安装成功
使用MySQL
新安装的MySQL为了安全问题,它给了临时密码在 /var/log/mysqld.log 中,现在来查看下临时密码
grep 'temporary password' /var/log/mysqld.log
现在来登陆
mysql -uroot -p
前两个密码是本次不可用的,因为之前我的安装启动失败的时候信息写入日志,我重新安装的时候没有清空日志导致过滤得到的会有之前密码信息
最后一个终于成功登陆了
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
密码默认要求
MySQL的validate_password插件默认安装。 这将要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。
可以通过修改validate_password_policy来设定密码的复杂度要求(百度吧),我就设置了一个满足强度要求的密码了
现在查看下默认的库
show databases;
最后一步,授权其他主机可以远程登陆
先查看下权限
现在是只有本机可以登陆
我是通过修改库表的信息来授权的
update user set host = '%' where user = 'root';
%代表的就是所有主机
之后需要刷新一下
FLUSH PRIVILEGES;
还有通过命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
这里我没有尝试,在版本8的时候是不可行的,不过在5.7有可能还能使用
尝试远程登陆下,连接成功而且新建了一个测试的库new_test
大功告成......