MySQL的二进制安装
二进制安装方式中, 包括 rpm 版本以及 glibc 版本。 rpm 版本就是在特定 Linux版本下编译的, 如果你的 Linux 版本匹配, 就可以安装。 如下载 CentOS7 系统所对应编译好的 rpm 包安装即可。 另外一种二进制安装包是基于特定的 glibc 版本编译的, 这里主要讲解基于 glibc 方式安装 MySQL。
1.基础环境准备
如果采用 CentOS 7 minimal 安装的系统, 在使用前需要安装一些基础软件包工具。
[root@localhost ~]# yum -y install gcc vim wget net-tools lrzsz
安装MySQL依赖的软件包。
[root@localhost ~]# yum -y install libaio
创建运行MySQL程序的用户。
[root@localhost ~]# useradd -M -s /sbin/nologin mysql
关闭 SELinux 和防火墙
[root@localhost ~]# vim /etc/selinux/config
.........
SELINUX=disabled
root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl stop firewalld
2.二进制安装
二进制安装首先需要下载该软件包或者提前上传, 然后再解压进行配置。
[root@localhost ~]# tar zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost ~]# mkdir /usr/local/mysql/data
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql/data
[root@localhost ~]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
3.设定配置文件
[root@localhost bin]# vim /etc/my.cnf
[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
socket=/usr/local/mysql/data/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
port = 3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=2048
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
将MySQL的可执行文件写入环境变量中
[root@localhost bin]# vim /etc/profile
..........
export PATH=$PATH:/usr/local/mysql/bin 添加上
[root@localhost bin]# . /etc/profile
4.配置systemctl方式启动
将 MySQL 添 加 成 为 系 统 服 务 , 通 过 使 用 systemctl 来 管 理 。 在
/usr/local/mysql/support-files 目 录 下 找 到 mysql.server 文 件 , 将 其 复 制 到/etc/rc.d/init.d 目录下, 改名为 mysqld 并赋予可执行权限。
[root@localhost bin]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost bin]# chmod +x /etc/rc.d/init.d/mysqld
编辑生成 mysqld.service 服务, 通过 systemctl 方式来管理。
[root@localhost bin]# vim /lib/systemd/system/mysqld.service
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.d/init.d/mysqld start
ExecReload=/etc/rc.d/init.d/mysqld restart
ExecStop=/etc/rc.d/init.d/mysqld stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@localhost bin]# systemctl daemon-reload
[root@localhost bin]# systemctl enable mysqld
[root@localhost bin]# systemctl start mysqld
[root@localhost bin]# netstat -tunlp | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7266/mysqld