Centos7-Linux环境下安装MySQL5.7详细图文教程
文章目录
一、前言
本文主要介绍的是在Centos7环境下安装MySQL5.7.37的详细过程,所用的MySQL安装包为解压版的安装包,如果你想找安装版的可以看看其他人的博客,且本文的安装过程能够完全正确的安装MySQL 并能成功运行。
二、下载MySQL
1、MySQL官网下载
下载地址:https://downloads.mysql.com/archives/community/
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
三、卸载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目录下
- 如果你是通过wget命令下载的MySQL,那么上面的第二章已经是进入usr/local目录下下载的,你进入usr/local目录中应该能看到你刚刚下载的安装包
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、重命名解压后的文件夹
#将解压后的目录改名为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
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
五、使用MySQL
1、登录mysql数据库,更换root用户密码
#使用root用户登录mysql
mysql -u root -p
如果使用上述命令报错,则需要执行以下命令,这是因为系统默认会查找/usr/bin下的命令,若是这个命令不在这个目录下,固然会找不到命令,咱们须要作的就是映射一个连接到/usr/bin目录下,至关于创建一个连接文件
#如果有上述报错,则执行这句,没有可不用执行这句
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
#再次重启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后,如果运行命令出现以下报错,则你需要重新置入一下你的密码,如果没有报错,这一步可以省略。
#显示所有的数据库
show databases;
#如果有上述报错,就执行一下这句
set password=password('你的密码');
#再次执行显示数据库命令
show databases;
6、添加mysql服务开机自启
#将mysqld服务加入到系统服务,开机自启
chkconfig --add mysql
#检查mysqld服务是否已经生效
chkconfig --list mysql
六、使用Navicat连接MySQL
6.1、打开navicat连接工具
如果你连接你的MySQL的时候出现如下错误,原因有两个:
- 服务器对应的端口没打开
- 服务器上的MySQL没有设置允许远程连接
6.2、解决办法
-
查看服务器上是否打开了你设置的端口
#检查服务器是否开放对应端口命令,我的是59305 firewall-cmd --query-port=59305/tcp
-
检查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
七、总结
Linux环境下MySQL的安装还是有点麻烦的,会遇到很多的问题,其中必须注意的两点:1.成功初始化MySQL的安装包,2.确保服务器已经打开对应的端口,总之安装过程中,遇到问题解决问题,百度是你最好的老师。文章过程中有不足之处,欢迎指出!!!