Centos7安装MySQL5.7–精简详细版

时间:2020-9-12 作者:admin

前言

最近因公司人员有限,需要搭建微服务的环境,因此这几天恶补了一下Linux的相关操作,打算从MySQL安装开始,毕竟项目的前提都是数据先行嘛。看了大量文章,实际动手后,发现还是存在着一些问题,很多人可能都是对着教程十分钟左右就完事了。我天资愚昧,淌了许多MySQL安装时的坑,问题五花八门的,大家遇到了问题一定要根据MySQL的版本去解决。

环境准备

Linux版本:centos7.5

MySQL安装版本:5.7

root权限获取:sudo su(必备条件)

确保系统中MySQL环境是干净的,若是二次安装则需要将之前安装失败的MySQL残留文件彻底卸载干净

以上内容准备好后,就可以开始安装了

MySQL安装

第一步:检查当前系统是否存在MySQL

rpm -qa | grep mysql

  如果存在卸载即可

rpm -e mysql-5.7.31-linux-glibc2.12-x86_64 

检查当前系统是否存在Mariadb,如果存在则需要卸载

rpm -qa|grep mariadb
rpm -e --nodeps mariadbxxxx

第二步:下载MySQL的安装包,按实际需求下载就好,我需要的版本是5.7版本

下载链接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

下载完成后,放至服务器指定文件夹即可。

第三步:解压并移动

移动是为了方便后续配置文件需要,非必需。

解压MySQL

tar -xvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

移动

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

重命名

mv mysql-5.7.31-linux-glibc2.12-x86_64/ mysql-5.7

软连接

ln -s  mysql-5.7.31-linux-glibc2.12-x86_64/ mysql-5.7

添加系统mysql组和mysql用户

检查mysql组和用户是否存在,如无创建

以上是存在的情况,就不要二次添加了,

如果没有则需要创建mysql组和用户

groupadd mysql
useradd -r -g mysql mysql

 

安装数据库

创建data目录

 

cd /
mkdir -p data
cd data/
mkdir -p mysql

 

授权

 

chown mysql:mysql -R /data/mysql

第四步:开始配置MySQL相关参数

 

cd /etc

vi my.cnf

 

因为我的是笔记本,编辑模式是fn+ins,也可按i进入编辑模式,写入如下内容

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
#!includedir /etc/my.cnf.d

 

完事后按ESC退出编辑,英文输入法输入 :wq 退出编辑

第五步:初始化

cd /usr/local/mysql-5.7/bin/

 ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7/ --datadir=/data/mysql/ --user=mysql --initialize

 

查看初始化密码

vim /data/mysql/mysql.err

找到root@localhost:初始密码

第六步:启动

service mysqld start

(不报错可自行跳过)

正常情况下是会启动成功的,我就是在这里开始错的

出现了如下错误

Redirecting to /bin/systemctl start mysqld.service

Failed to start mysqld.service: Unit not found.

解决方案:

cd /usr/local/mysql-5.7/support-files

./mysql.server start

结果还是报错。。。。

Starting MySQL.2020-08-14T02:34:16.212389Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).

解决方案:

mkdir /var/log/mariadb

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb/

再次输入./mysql.server start启动成功

如果还是启动失败,报

 MySQL server PID file could not be found!  [FAILED] .....

可能进程里已经存在mysql进程

解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

 

查看是否成功启动命令:

ps -ef|grep mysql

更改MySQL密码

cd /usr/local/mysql-5.7/bin
 mysql -u root -p

 

复制刚才得到的初始密码进入

SET PASSWORD = PASSWORD('123456');   --修改密码

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;  --设置数据库账号

flush privileges; --刷新修改

 

至此,MySQL安装过程结束了。

如果需要开放远程连接,使linux上的mysql能被远程访问,则使用sql语句修改root用户的host

use mysql;
select host,user from user;
update user set host='%' where user='root';
flush privileges;

如果想关闭mysql 执行 service mysqld stop

PS:注意权限问题,以及开始自启

 

chown 777 /etc/my.cnf

开放linux防火墙的3306端口:

//开启端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
//查询端口号3306是否开启:
firewall-cmd --query-port=3306/tcp
//重启防火墙:
firewall-cmd --reload
//查询有哪些端口是开启的:
firewall-cmd --list-port
//禁用端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent

 

如果安装过程有问题的地方,欢迎大家指出,有疑问的地方也可以在下方留言。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。