[Linux] 使用Yum在CentOS上安装MySQL
跟随官网上的安装教程:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
官网上还有一个QuickGuide版本: https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
过程有一点不同。跟随任意一个教程都OK。
这里针对第一次安装。如果是以前安装的有残留,应该会有一些麻烦。
MySQL的适用版本没有单独列出CentOS。因为CentOS也使用的Yum Repository,因此我们跟随同样使用Yum的Red Hat Linux教程进行安装。
1. 添加MySQL Yum Repositroy
首先我们将MySQL的Yum源添加到系统Repository表中。按以下步骤:
a. 到以下地址下载MySQL Yum Repository: https://dev.mysql.com/downloads/repo/yum/
注意没有单独列出CentOS,我们选择Red Hat版本. CentOS6选择6版本, CentOS7选择7版本。(查看系统版本命令:head -n 1 /etc/issue)。
页面的download按钮并不是直接指向下载位置,需要通过浏览器下载。
可以将本地下载的文件发送到服务器,或者查看浏览器下载文件的源地址,在服务器上通过wget 源地址来下载文件。
注意到下载包前缀可能是mysql80, 不是我要的mysql版本? 这不是问题,先下载。
b. 通过以下命令安装对应版本的repository
sudo yum localinstall platform-and-version-specific-package-name.rpm
通过以下命令检查是否已成功安装repository。
yum repolist enabled | grep "mysql.*-community.*"
会看到相应的mysql包.
2. 选择需要的MySQL发行版本
repository下载安装后,默认用户要安装的是最新版本(比如我看到的是mysql80)。如果想要安装老版本的MySQL,需要修改源。
查看可用的mysql的全部版本:
yum repolist all | grep mysql
通过yum-config-manager启用对应版本的mysql。如我要用57版本:
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
检查是否启用了正确的版本:
yum repolist enabled | grep mysql
3. 安装MySQL
yum install mysql-community-server
命令会自动安装需要的依赖包
4. 启动MySQL服务器
service mysqld start
没什么问题的话会看到start OK的提示。
也可以查看服务状态:
service mysqld status
57之后好像默认启用root密码。查看系统随机生成的密码:
grep 'temporary password' /var/log/mysqld.log
登陆MySQL,修改root密码:
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
现在的密码策略强制要求至少一个大写字母,一个小写字母,一个数字,一个特别字符(标点),总长度不少于8个字符,否则应该会报错。
配置文件路径:/etc/my.cnf
配置文件中的配置项:
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
log-error = /var/log/mysqld.log
pid-file = /var/run/mysqld/mysqld.pid
另外针对EL7系统的用户,MySQL和以下包有冲突,不能同时安装
○ akonadi-mysql
[BUG]
以上就是完整的安装教程。下面讲一下个人碰到的问题及解决办法。
Error: Package: mysql-community-client-5.7.17-1.el7.i686 (mysql57-community) Requires: libstdc++.so.6(GLIBCXX_3.4.15) Error: Package: mysql-community-server-5.7.17-1.el7.i686 (mysql57-community) Requires: systemd Error: Package: mysql-community-server-5.7.17-1.el7.i686 (mysql57-community) Requires: libstdc++.so.6(GLIBCXX_3.4.15) Error: Package: mysql-community-server-5.7.17-1.el7.i686 (mysql57-community) Requires: libc.so.6(GLIBC_2.17)
这是第一步中选择的repository版本有误导致的。我是CentOS6.8的系统,却下载了EL7的源,因此报错。
解决方法是先清理之前的源,然后重新安装EL6的源。(反之亦然)
yum remove mysql80-community-release-el7-2.noarch
yum clean all
yum localinstall mysql80-community-release-el6-2.noarch.rpm
然后按上面的步骤进行安装, 应该是顺利的。如果碰到其他问题,请根据情况自行解决。
我在解决这个问题的过程中,好像因为没有执行yum clean all命令,导致重新安装了el6的源后依然报错。
查阅/etc/yum.repos.d下的mysql-community.repo文件,发现源路径已经全部变成el6,然而错误信息中依然提示xxx.el7.xxx的包缺少xxx。查阅了网上的资料,执行了yum clean all后再安装mysql-community-server,就一切顺利了。