老规矩,先总结安装步骤:
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