CentOS7安装MySQL5.7——二进制安装包

半城伤御伤魂 提交于 2020-04-05 21:05:38

  老规矩,先总结安装步骤:

1、查看操作系统信息,下载正确的mysql安装包

2、检查操作系统环境,软件残留,依赖包,关闭防火墙等

3、开始安装

一、查看操作系统信息

  不同的内核,使用的安装包是不同的,所以第一步必须先验证操作系统的内核版本,然后再去下载对应的MySQL安装包,免得在安装的时候才发现安装包不可用,下图分别展示了两种内核的CentOS7操作系统:

uname -a

 

 

 

 

对应  MySQL的官网下载版本,图一中的x86_64内核应该下载x86,64-bit版本

 

图二中的aarch64内核应该下载ARM,64-bit版本:

 aarch64版本的内核多出现在华为云的服务器中,阿里云的惯用x86_64,当然,一切以实际情况为准,眼见为实。

二、检查系统环境

1、检查防火墙,不关闭防火墙, 及时数据库安装完毕,外部也无法连接

systemctl stop firewalld        #关闭防火墙

systemctl disable firewalld      #关闭防火墙开机自启

setenforce 0           #临时关闭selinux,此命令重启服务器后失效,如果想永久关闭,则需要修改/etc/selinux/config

永久关闭selinux的操作:

vi /etc/selinux/config

修改SELINUX参数值为disabled,然后重启服务器即可

2、查看是否安装了mariadb,一般情况下centos都默认安装的,在某些MySQL5.7的小版本会有冲突,必须先卸载mariadb之后才能正常安装,如MySQL5.7.17,但是并不是所有的版本都会冲突,所以可以先查看mariadb的安装信息,先不卸载,在安装MySQL的过程中报错冲突之后再来卸载,查看命令如下:

rpm -qa|grep mariadb

 卸载命令:

rpm -e <mariadb的具体信息,即上条命令的结果>

3、检查依赖包,MySQL5.7需要两个依赖包,如果没有的话则可能安装失败

yum list installed|grep libaio

yum list installed|grep numact

如果已经安装,则会返回具体的版本号:

 反之则无信息返回,那就需要手动进行安装,先使用yum Install命令进行安装即可,如果服务器在局域网无法连通外网,则可以手动在阿里云的yum源网页中下载:http://mirrors.aliyun.com/centos/

注意找对自己的操作系统

 

 三、开始安装

使用二进制安装包须使用root账号或者拥有sudo权限

1. 安装包保存到/usr/local

2. 解压:

cd /usr/local

tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar

mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql

3. 添加用户组和用户

#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql

4. 创建数据存放路径并授权,我习惯把数据存放在根目录下的data文件夹

mkdir /data

chown -R mysql:mysql /data

5. 复制启动文件

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

cp /bin/my_print_defaults /usr/bin/ 

6. 修改mysql配置项,根据自己的需求配置my.cnf文件

 

vi /etc/my.cnf

配置如下:

[mysqld]

basedir=/usr/local/mysql

datadir=/data

socket=/tmp/mysql.sock

user = mysql

tmpdir = /tmp

symbolic-links=0

port=3306   

lower_case_table_names=1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

default_password_lifetime=0

explicit_defaults_for_timestamp=on

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]

log-error=data_path/mysql_error.log

pid-file=data_path/mysql.pid

# include all files from the config directory

[client]

default-character-set=utf8

[mysql]

 

default-character-set=utf8

 

7. 初始化数据库

/usr/local/mysql/bin/mysqld --initialize --user=mysql > /home/mysql/initialize.log 2>&1

如果初始化失败了,则把数据存放文件夹清空,即把/data文件夹下的所有内容删除,然后重新执行初始化命令,重复操作知道初始化成功为止

8. 启动MySQL

加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
vi /etc/profile
添加mysql路径,加入下面内容,按ESC-->:wq保存
export PATH=$PATH:/usr/local/mysql/bin
刷新立即生效
source /etc/profile

/etc/init.d/mysqld start

9. 进入MySQL修改初始密码,修改远程连接的用户权限问题

查看root用户的初始化密码,vi  /home/mysql/initialize.log

 mysqladmin -uroot -p初始化密码 password "root_123456"

创建账号跟数据库

CREATE USER 数据库用户名’@’%’ IDENTIFIED BY '账号密码密码';

CREATE USER test’@’%’ IDENTIFIED BY 'test_2020';

CREATE DATABASE `数据库名` DEFAULT  CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE DATABASE `test` DEFAULT  CHARACTER SET utf8 COLLATE utf8_general_ci;

GRANT ALL privileges ON 数据库名.* TO '数据库用户名'@'%';

flush privileges;

/etc/init.d/mysqld stop

至此数据库安装完毕!启停命令如下:

1、启动

su mysql

/etc/init.d/mysqld start

exit

2、停止

su mysql

/etc/init.d/mysqld stop

exit

启动后查看MySQL进程:

 P.S.

1、如果数据库所在服务器为阿里云或者华为云等网络服务器,注意创建mysql账号时的密码应复杂一些,否则容易被人暴力破解,安装挖矿病毒,挖矿病毒的处理可查看博文:https://www.cnblogs.com/fivedays/p/12572178.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!