Skip to content

MySQL 5.7 离线 RPM 安装在 CentOS 6.1 系统

txt
CentOS Docker 安装
Docker支持以下的CentOS版本:
CentOS 7 (64-bit),要求系统为64位、系统内核版本为 3.10 以上。
CentOS 6.5 (64-bit) 或更高的版本,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

查看 linux 内核

shell
uname -a

发现 CentOS 6.1 的内核版本太低,无法用 docker 安装,所以使用 RPM 包安装。

环境准备

卸载系统自带的 mysql-libs 组件

shell
# rpm 查找
[root@localhost ~]# rpm -qa | grep  mysql
# centos 7 默认自带 mariadb,最好都检查一下,有就卸载
[root@localhost ~]# rpm -qa | grep mariadb

# 示例
[root@localhost ~]# rpm -qa | grep mysql
mysql-libs-5.1.52-1.el6_0.1.x86_64

# 上面的命令就会列出来所有 mysql 相关的已安装的包,需要全部卸载
# 卸载。使用 -e 参数卸载
[root@localhost ~]# rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64

# 如果卸载报错(libmysqlclient.so.16()(64bit) is needed by (installed)……),可以使用  --nodeps 参数:
[root@localhost ~]# rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64 --nodeps

检查 numactl 包是否已安装

shell
[root@localhost ~]# rpm -qa | grep numactl
numactl-2.0.9-2.el6.x86_64

默认应该是为空的,即表示没安装,这样在后面执行 rpm -ivh mysql-community-server-5.7.26-1.el6.x86_64.rpm 就会报【libnuma.so.1 is needed by......】错。

在线安装

shell
[root@localhost ~]# yum -y install numactl

离线安装

shell
# 下载 centos 6 匹配版本的 numactl。
# 可以自行搜索一下 centos 各个版本对应的 numactl 版本是多少。
[root@localhost ~]# wget --no-cookie --no-check-certificate https://mirrors.aliyun.com/centos-vault/6.10/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm

# 安装 numactl
[root@localhost ~]# rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm

查 RPM 包下载地址:https://crpm.cn/

下载 MySQL RPM 安装包

官网下载地址:https://downloads.mysql.com/archives/community/

选择要下载的版本:

shell
# 版本号
Product Version:5.7.26
# 操作系统(CentOS 是 Red Hat 的)
Operating System:Red Hat Enterprise Linux / Oracle Linux
# 系统架构版本,根据实际情况选择
OS Version: Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 64-bit)

下载下面这一项 RPM 包(RPM Bundle):

RPM BundleApr 15, 2019453.1M
(mysql-5.7.26-1.el6.x86_64.rpm-bundle.tar)MD5: 196641eb041f945a06e60a7158009b67

可以下载下来上传到服务器,也可以找出下载地址,直接使用 wget 下载

shell
[root@localhost ~]# cd /home/mysql
# 下载
[root@localhost ~]# wget --no-cookie --no-check-certificate https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.26-1.el6.x86_64.rpm-bundle.tar
# 解压
[root@localhost ~]# tar -xvf mysql-5.7.26-1.el6.x86_64.rpm-bundle.tar
# 查看 rpm 包
[root@localhost ~]# ll
总用量 927904
-rw-r--r--. 1 root root  475084800  4月 15 2019 mysql-5.7.26-1.el6.x86_64.rpm-bundle.tar
-rw-r--r--. 1 7155 31415  23550772  4月 15 2019 mysql-community-client-5.7.26-1.el6.x86_64.rpm
-rw-r--r--. 1 7155 31415    340180  4月 15 2019 mysql-community-common-5.7.26-1.el6.x86_64.rpm
-rw-r--r--. 1 7155 31415   3701748  4月 15 2019 mysql-community-devel-5.7.26-1.el6.x86_64.rpm
-rw-r--r--. 1 7155 31415  39136268  4月 15 2019 mysql-community-embedded-5.7.26-1.el6.x86_64.rpm
-rw-r--r--. 1 7155 31415 136572308  4月 15 2019 mysql-community-embedded-devel-5.7.26-1.el6.x86_64.rpm
-rw-r--r--. 1 7155 31415   2201484  4月 15 2019 mysql-community-libs-5.7.26-1.el6.x86_64.rpm
-rw-r--r--. 1 7155 31415   1723716  4月 15 2019 mysql-community-libs-compat-5.7.26-1.el6.x86_64.rpm
-rw-r--r--. 1 7155 31415 160795004  4月 15 2019 mysql-community-server-5.7.26-1.el6.x86_64.rpm
-rw-r--r--. 1 7155 31415 107049252  4月 15 2019 mysql-community-test-5.7.26-1.el6.x86_64.rpm

按照顺序依次安装以下包:

shell
rpm -ivh mysql-community-common-5.7.26-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el6.x86_64.rpm

如果有报错的,参考前面环境准备,卸载后重来一遍。

注意:安装时,不要使用 --nodeps --force 跳过有问题的包,不然后面还是启动不起来。

启动 MySQL 服务

shell
service mysqld start

查看 root 用户默认密码

shell
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: !ssidIisdfk+E

# 使用 root 用户登录 mysql 客户端
# 这里的密码和p连着写,默认密码一般有特殊字符,所以最好用单引号引起来,如下:
[root@localhost ~]# mysql -u root -p'!ssidIisdfk+E'

# 修改密码
sql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz2wsx';
# 开放外部主机访问权限
sql> grant all privileges on *.* to root@'%'identified by '1qaz2wsx';
# 刷新权限
sql> flush privileges;
# 查看使用的端口,默认为 3306
sql> show global variables like 'port';
# 退出
sql> exit

# 可以使用新密码登录
[root@localhost ~]# mysql -u root -p'1qazwsx'

查看 MySQL 配置文件

my.cnf 是 mysql 启动时加载的配置文件,一般会放在 mysql 的安装目录中,用户也可以放在其他目录加载。

安装 mysql 后,系统中会有多个 my.cnf 文件,有些是用于测试的。

当我们需要修改配置文件时,需要找到 mysql 启动时是加载了哪个 my.cnf 文件。

查看是否使用了指定目录的 my.cnf

启动 mysql 后,我们查看 mysql 的进程,看看是否有设置使用指定目录的 my.cnf 文件,如果有则表示 mysql 启动时是加载了这个配置文件。

shell
[root@localhost ~]# ps aux | grep mysql | grep 'my.cnf'
# 默认上面的命令没有输出,表示没有设置使用指定目录的my.cnf
# 如果有输出,则需要查看使用了哪个 my.cnf 文件,这样就找到了

查看 mysql 默认读取 my.cnf 的目录

如果没有设置使用指定目录的 my.cnf,mysql 启动时会读取安装目录根目录及默认目录下的 my.cnf 文件。

shell
# 查看mysql启动时读取配置文件的默认目录
[root@localhost ~]# mysql --help | grep 'my.cnf'
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
/etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf

这些就是 mysql 默认会搜寻 my.cnf 的目录,顺序排前的优先。

MySQL 启动时没有使用配置文件

如果没有设置使用指定目录 my.cnf 文件及默认读取目录没有 my.cnf 文件,表示 mysql 启动时并没有加载配置文件,而是使用默认配置。

需要修改配置,可以在 mysql 默认读取的目录中,创建一个 my.cnf 文件(例如:/etc/my.cnf),把需要修改的配置内容写入,重启 mysql 后即可生效。

修改 MySQL 端口

通过前面可以知道,mysql 默认情况下,启动时没有使用配置文件。我们要修改配置,就需要创建 /etc/my.cnf 文件。

shell
vim /etc/my.conf

输入以下内容

shell
[mysqld]
port=3307

然后重启 mysql 服务。

CentOS 6 之 MySQL 启动、停止、重启、状态

shell
# 重启
service mysqld restart
# 停止
service mysqld stop
# 启动
service mysqld start
# 查看状态
service mysqld status
# 查看进程
ps aux | grep mysql

CentOS 6 下 MySQL 开机自启

rpm 安装后默认就是开机自启,也可以再检查一下。

shell
# 查看服务列表。找到 mysqld 那一行,看到 3、4、5 状态为开或者为 on 则表示成功
chkconfig --list
#  如果是 关或者 off 则执行一下:
chkconfig --level 345 mysqld on

# 如果没有找到 mysqld 那一行,先执行:
chkconfig --add mysqld
# 然后再执行:
chkconfig --level 345 mysqld on