CentOS7安装通用二进制版MySQL

这篇文章是本人尝试在CentOS7上安装二进制版MySQL的一次摸索,推荐大家如果MySQL要自用的话最好还是用rpm源安装最好:https://blog.csdn.net/JAVA_php_Jack/article/details/104016982。当然,如果想当作一次学习尝试安装通用二进制版本的MySQL的话,不妨继续往下看,我是用具有sudo特权账户安装的,但是最后不得不寻求root用户的帮忙(我不想给sudo随便添加write的权限)。废话不多说,我们先准备一个二进制通用的tar.gz包:mysql-5.7.28-linux-glibc2.12-x86.64https://downloads.mysql.com/archives/community/,或者我把它上传到csdn资源里面下载也可。

环境准备

一台CentOS7的服务器:
hostname -I:ip
hostname:name

清理历史环境

一般虚拟机内部会有mariadb软件,又或者我们用rpm源安装过MySQL,此时就要把他们清理掉:

rpm -qa|grep mariadb 
yum remove mariadb -y
rpm -qa|grep mysql
yum remove mysql -y

在这里插入图片描述
sudo用户记得在命令前加sudo哦,然后清理成功:
在这里插入图片描述

创建用户和组

#创建用户和组
useradd mysql -s /sbin/nologin
#查看
id mysql

在这里插入图片描述

创建相关目录

一般在实际的生产环境下,MySQL的软件、数据还有日志是要放在不同的磁盘下的,我们自己玩就算了,或者我们建不同的目录去存放也行:

#数据目录(国际标准是/user/local,我就把它放app/database好了,不同公司也有不同标准)
mkdir -p /app/database/
#数据目录
mkdir -p /data/3306/
#日志目录
mkdir -p /binlog/3306/

在这里插入图片描述

设置权限

chown -R mysql.mysql /app/ /data/ /binlog/

在这里插入图片描述

上传MySQL软件,解压

我们直接用winscp等工具把软件上传到服务器的/app/database目录下,然后进入该目录解压软件:

cd /app/database
tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
#创建一个软链接方便后续使用
ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql

在这里插入图片描述
在这里插入图片描述
一般来说,bin目录存放的是可执行程序,然后最底下的support-files是MySQL的脚本文件。

设置环境变量

vim /etc/profile

然后在最后一行添加上:

export PATH=/app/database/mysql/bin:$PATH

在这里插入图片描述

#保存之后使配置生效
source /etc/profile
#检验结果,查看MySQL版本号
MySQL -V 

在这里插入图片描述

初始化数据库表

初始化数据库表需要修改之前创建好的软件目录和数据目录,需要有写的权限,我只好用root用户了:

mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/

在这里插入图片描述
看到这样子就说明成功啦,如果失败的话(即下面的信息有出现REEOR的话),有以下几个原因:
1、可能是提示没有libaio,安装即可:

yum install -y libaio-devel

安装之后再次运行上面的初始化数据库表命令;

2、提示没有写权限:
为你的用户添加上写的权限或者切换root用户执行初始化数据库表命 令;

3、提示/data/3306/下已经初始化存在数据了:
把/data/3306/下的文件删除掉再重新初始化。

#删除/data/3306/下的所有文件
rm -rf /data/3306/*

说明

数据库5.7的初始化方式:

  1. mysqld --initialize-insecure:没有初始密码的初始化,初始化之后可以直接mysql命令,不用再重新设置密码;
  2. mysqld --initialize:
    (1)初始化完成之后有12位的临时密码,这个密码不能用来管理数据库,需要我们在使用数据库之前完成重置密码的操作;
    (2)重置的密码需要遵循严格的要求模式:3种密码复杂度。

数据库5.7的初始化方式:

/app/database/mysql/scripts/mysql_install_db  --user=mysql --datadir=/data/3306/ --basedir=/app/database/mysql

配置文件

cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/app/database/mysql
datadir=/data/3306
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF

在这里插入图片描述

准备MySQL启动脚本

#本人依旧使用root用户完成该操作
#拷贝MySQL的启动脚本到系统管理目录
cd /app/database/mysql/support-files/
cp mysql.server /etc/init.d/mysqld

在这里插入图片描述

使用systemd管理mysql

vim /etc/systemd/system/mysqld.service 

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

在这里插入图片描述

启动数据库

chkconfig --add mysqld
#启动、关闭和重启
systemctl start/stop/restart mysqld

在这里插入图片描述
也可以用centos6的启动方式:

server mysqld start/stop/restart

大功告成

在这里插入图片描述

发布了38 篇原创文章 · 获赞 16 · 访问量 2316

猜你喜欢

转载自blog.csdn.net/JAVA_php_Jack/article/details/104541151
今日推荐