概述

以往的情况,在Centos7上安装MySQL数据库,我们选择的方式大概有这样几种

  1. 使用包管理器安装
  2. 下载rpm安装包进行安装
  3. 编译源码进行安装

本文要介绍安装方式,是通过官方已经编译好的包进行安装,只需要通过几个步骤就可以使用。使用本文中介绍的安装方式,需要操作人员具有一定的linux操作基础,零基础小白慎用!

安装步骤

下载绿色免安装的包

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

解压

tar zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

移动文件

解压完成后,我们会在当前目录下看到有个mysql-5.7.32-linux-glibc2.12-x86_64文件夹,此文件夹中的内容,就是我们可以运行使用MySQL程序,根据我们的使用习惯,应用程序要移动到/usr/local目录下进行使用

mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql

上述命令表示,我们将解压好的文件夹移动到了/usr/local下,并且将其更名为mysql

修改环境变量

修改/etc/profile文件,并且在文件的最后添加以下内容

export PATH=$PATH:/usr/local/mysql/bin

保存后,执行source /etc/profile使其生效

卸载mariadb依赖包

在Centos7中,系统会默认自带了mariadb的依赖包,这个包与mysql是有冲突的,因此我们在使用之前要将其卸载

  • 查询mariadb包名
rpm -qa|grep mariadb

执行该命令后,我们就能得到系统默认安装的mariadb 包名,我当前得到的包名是mariadb-libs-5.5.68-1.el7.x86_64,我们使用包管理器将其卸载

yum remove mariadb-libs-5.5.68-1.el7.x86_64 -y

创建服务器用户

useradd -s /sbin/nologin mysql

该命令是创建一个mysql用户,此用户用于启动mysql服务

创建数据目录

mkdir -p /data/mysql/data

授权

这里要分别对mysql用户进行应用目录授权和数据目录授权

chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data

初始化

我们要mysql进行初始化,使其生成启动服务必要的数据文件这里的初始化方式有两种,两种的区别就在于初始化完成后,客户端登录时是否需要密码

  • 无密码初始化
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
  • 有密码初始化
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

使用有密码的方式初始化时,在初始化命令结束后,命令中会显示出初始化系统生成密码,在服务启动后,可以使用此密码进行登录

创建配置文件

要启动mysql服务,我们要设置mysql的启动参数,如果使用包管理器或者rpm包的方式进行安装时,会自动在/etc目录下生成一个my.cnf的文件,我们为了将来方便扩展,将这个配置文件放到/data/mysql目录下

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/data/mysql/mysql.sock
server_id=6
port=3306
character-set-server=utf8
lower_case_table_names=1

参数

说明

user

启动mysql服务的服务器系统用户

basedir

mysql的应用程序目录

datadir

数据目录

socket

生成一个sock文件,用于客户端登录使用

server_id

该参数在搭建主从的时候会用到,在这里没有任何作用

port

mysql服务的端口

character-set-server

设置mysql服务的默认字符集

lower_case_table_names

表名忽略大小写

创建服务文件/usr/lib/systemd/system/mysqld.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000

启动服务

systemctl start mysqld.service

客户端连接

mysql -S /data/mysql/mysql.sock