Centos7-Linux环境下安装MySQL5.7详细图文教程

Centos7-Linux环境下安装MySQL5.7详细图文教程

一、前言

​ 本文主要介绍的是在Centos7环境下安装MySQL5.7.37的详细过程,所用的MySQL安装包为解压版的安装包,如果你想找安装版的可以看看其他人的博客,且本文的安装过程能够完全正确的安装MySQL 并能成功运行。

二、下载MySQL

1、MySQL官网下载

​ 下载地址:https://downloads.mysql.com/archives/community/
image-20220602165821950

2、通过wget命令下载

#进入usr/local目录
cd /usr/local
#检测有没有wget命令
rpm -qa|grep wget
#如果没有执行以下命令安装wget
yum -y install wget
#执行以下命令下载MySQL5.7.37安装包
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar

image-20220602171118211

三、卸载mariadb

1、卸载原因

为什么要卸载Mariadb才能安装MySQL:以前的Linux系统中数据库大部分是mysql,不过自从被sun收购之后,就没用集成在centos这些开源Linux系统中了,那么如果想用的话就需要自己安装了,首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。

2、卸载步骤

#检查是否已安装mariadb
rpm -qa | grep mariadb
#显示以下内容代表安装的有mariadb
mariadb-libs-5.5.68-1.el7.x86_64
#卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

四、解压MySQL安装包

1、下载上传安装包

  • 如果你是通过官网下载的压缩包,那么你需要上传你的压缩包至 usr/local目录下
    modb_20220105_73d5a710-6dd0-11ec-8a34-fa163eb4f6be
  • 如果你是通过wget命令下载的MySQL,那么上面的第二章已经是进入usr/local目录下下载的,你进入usr/local目录中应该能看到你刚刚下载的安装包
    image-20220602171137316

2、添加mysql组和mysql用户

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

# -r 参数表示mysql用户是系统用户,不可用于登录系统。
# -g 参数表示把mysql用户添加到mysql用户组中。

3、解压MySQL

#进入usr/local目录
cd /usr/local/
#解压命令
tar -vxf mysql-5.7.37-linux-glibc2.12-x86_64.tar 
#上面这个命令会解压出两个.gz后缀的压缩包,这里需要再解压一次
tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
# 删除掉多余的压缩包
rm -f mysql-5.7.37-linux-glibc2.12-x86_64.tar
rm -f mysql-test-5.7.37-linux-glibc2.12-x86_64.tar.gz 

#####################说明#########################
#如果压缩包的后缀是 .tar.gz 则用tar -zxvf ...命令解压
tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
#如果压缩包的后缀是 .tar 则用 tar -vxf ... 命令解压
tar -vxf mysql-5.7.37-linux-glibc2.12-x86_64.tar

4、重命名解压后的文件夹

image-20220602172603874

#将解压后的目录改名为mysql
mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql

5、更改mysql文件夹的权限

chown -R mysql:mysql mysql/

6、创建mysql数据文件夹并授权

在opt目录新建一个数据目录data,子文件夹为mysql,用于管理mysql数据库,并把它的所有组和所有者改为上述第二步创建的用户和组(由mysql用户和mysql组成员来管理mysql数据)

#进入opt目录
cd /usr/local/mysql
#创建data目录和子文件夹
mkdir -p ./data/mysql
#将mysql数据目录的所有者和所有组改为刚才创建的mysql用户和组
chown mysql:mysql -R /usr/local/mysql/data/mysql

image-20220606173056596

7、创建配置文件

#进入ect目录下
cd /etc
#创建MySQL配置文件,没有此文件会自动创建
vim my.cnf

配置文件详解:

[mysqld]
bind-address=0.0.0.0 #mysql监听的ip地址,如果是127.0.0.1,表示仅本机访问,0.0.0.0表示全地址可以访问(任何主机)
port=3306 #mysql运行在哪个端口
user=mysql #mysql以什么用户运行
basedir=/opt/mysql5.7 #mysql主目录
datadir=/opt/data/mysql #mysql的数据目录
socket=/tmp/mysql.sock #mysql以socket方式运行的sock文件位置
log-error=/opt/data/mysql/mysql.err #错误日志位置
pid-file=/opt/data/mysql/mysql.pid #进程id文件
#character config
character_set_server=utf8mb4 #服务器使用的字符集
symbolic-links=0 #是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
explicit_defaults_for_timestamp=true #mysql中TIMESTAMP类型和其他的类型有点不一样(在没有设置explicit_defaults_for_timestamp=1的情况下)

[mysqld]
bind-address=0.0.0.0
port=59305
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data/mysql
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/data/mysql/mysql.err
pid-file=/usr/local/mysql/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

8、初始化数据库

走到这一步才算正式安装

#进入mysql的安装目录下的bin目录
cd /usr/local/mysql/bin 
#执行mysql初始化命令必须在bin目录下执行
./mysqld --initialize --user=mysql

我看有的教程上说,执行上述初始化命令的时候,会显示数据库的初始化密码,但是我在安装的过程中没有显示初始密码,所以下面再登录的时候会记录如何替换初始密码,如果mysql登录密码忘记 了也可以通过这种方式重置密码。

9、配置mysql服务

使用以下命令将mysql.server复制到/etc/init.d/mysql中,将mysql加入服务,然后启动服务

#添加mysql服务
cp /usr/local/mysql/support-flies/mysql.server /etc/init.d/mysql、
#启动mysql
service mysql start
#查看mysql状态命令
service mysql status

image-20220607140739056

五、使用MySQL

1、登录mysql数据库,更换root用户密码

#使用root用户登录mysql
mysql -u root -p

如果使用上述命令报错,则需要执行以下命令,这是因为系统默认会查找/usr/bin下的命令,若是这个命令不在这个目录下,固然会找不到命令,咱们须要作的就是映射一个连接到/usr/bin目录下,至关于创建一个连接文件
image-20220607141110850

#如果有上述报错,则执行这句,没有可不用执行这句
alias mysql=/usr/local/mysql/bin/mysql

#再次使用root账户登录mysql
mysql -u root -p

[root@serv01_vm15 log]# mysql -u root -p
Enter password: 
#上面初始化的时候并没有提示我初始密码,所哟我通过下述方法重置初始密码

2、重置初始密码

2.1.修改my.cnf配置文件
#进入配置文件目录
cd /etc
#编辑my.cnf文件
vim /etc/my.cnf
#在最下面加入这行配置,取消密码验证
skip-grant-tables
#保存退出后
2.2.重启mysql服务并重置密码

#重启mysql服务
service mysql restart
#再次使用命令登录
mysql -u root -p
#这里会提示输入密码,可随意输入一个密码后回车,即可登录成功
[root@serv01_vm15 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.37 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

#执行以下语句更新root账户密码
update mysql.user set authentication_string=password('123456') where user='root';
#显示成功
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

#退出mysql,输入exit;回车后退出
exit;
2.3.注释点my.cnf文件中的取消密码验证
#注释掉上面第一步添加的参数,避免绕过密码登录mysql数据库
vim /etc/my.cnf
#注释掉 skip-grant-tables

image-20220607145433640

#再次重启mysql服务
service mysql restart

3、使用新密码登录

[root@serv01_vm15 ~]# mysql -u root -p
Enter password:     #这里输入密码不会明文显示出来的
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.37

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

5、检查是否报错

安装完MySQL后,如果运行命令出现以下报错,则你需要重新置入一下你的密码,如果没有报错,这一步可以省略。

image-20220608100213171

#显示所有的数据库
show databases;
#如果有上述报错,就执行一下这句
set password=password('你的密码');
#再次执行显示数据库命令
show databases;

6、添加mysql服务开机自启

#将mysqld服务加入到系统服务,开机自启
chkconfig --add mysql
#检查mysqld服务是否已经生效
chkconfig --list mysql

六、使用Navicat连接MySQL

6.1、打开navicat连接工具

如果你连接你的MySQL的时候出现如下错误,原因有两个:

  1. 服务器对应的端口没打开
  2. 服务器上的MySQL没有设置允许远程连接
    image-20220608124415207
6.2、解决办法
  1. 查看服务器上是否打开了你设置的端口

    #检查服务器是否开放对应端口命令,我的是59305
    firewall-cmd --query-port=59305/tcp
    

    image-20220608123345014

  2. 检查MySQL服务器是否允许root用户远程登录

    #服务器上连接MySQL
    mysql -u root -p 密码
    #选择数据库
    use mysql;
    #查询用户和对应的host
    select host,user from user;
    #如果看到这种,root账户的host为localhost那么基本可以确定你连不上的原因就是这个了
    mysql> select host,user from user;
    +-----------+---------------+
    | host      | user          |
    +-----------+---------------+
    | localhost | mysql.session |
    | localhost | mysql.sys     |
    | localhost | root          |
    +-----------+---------------+
    3 rows in set (0.00 sec)
    
    
    # 则需要授权 root 用户的所有权限并设置远程访问,执行以下语句
    update user set host = '%' where user = 'root';
    #退出mysql
    exit;
    #重启MySQL服务生效
    service mysql restart;
    
6.3、再次使用navicat连接MySQL

image-20220608124318728

七、总结

Linux环境下MySQL的安装还是有点麻烦的,会遇到很多的问题,其中必须注意的两点:1.成功初始化MySQL的安装包,2.确保服务器已经打开对应的端口,总之安装过程中,遇到问题解决问题,百度是你最好的老师。文章过程中有不足之处,欢迎指出!!!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值