Centos7详细安装部署Mysql8.0两种方案

这篇具有很好参考价值的文章主要介绍了Centos7详细安装部署Mysql8.0两种方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境检查:卸载mysql数据库

1.1 查看mysql的安装情况

rpm -qa |grep -i mysql # -i表示忽略大小写
mysql80-community-release-el7-7.noarch
mysql-community-common-8.0.32-1.el7.x86_64
mysql-community-client-8.0.32-1.el7.x86_64
mysql-community-icu-data-files-8.0.32-1.el7.x86_64
mysql-community-server-8.0.32-1.el7.x86_64
mysql-community-client-plugins-8.0.32-1.el7.x86_64
mysql-community-libs-8.0.32-1.el7.x86_64
mysql-community-libs-compat-8.0.32-1.el7.x86_64

1.2 依次删除所有相关的包

yum remove mysql80-community-release-el7-7.noarch mysql-community-common-8.0.32-1.el7.x86_64 -y ...

或者

​rpm -e --nodeps mysql80-community-release-el7-7.noarch mysql-community-common-8.0.32-1.el7.x86_64 ...

查看版本:mariadb

在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。
CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。
如果直接安装MySQL,会和MariaDB的文件冲突。
因此,需要先卸载自带的MariaDB,再安装MySQL

rpm -qa | grep mariadb

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
删除mariadb

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64  # rpm -e --nodeps 文件名

安装依赖包libaio

安装mysql之前还需要检查下libaio.so.1是否存在;如果不存在,则需要先安装依赖包。

方法一:服务器有网络的情况下,可以通过yum安装

yum search libaio
yum install -y libaio

方法二:服务器没有网络,可以先在网络环境下载,然后传输到服务器上进行安装
centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

①下载地址:
http://mirror.centos.org/centos/7/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm
②安装命令:

rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

1.3 查找关于mysql的目录

find /-name mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql

1.4 依次删除这些文件夹

rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql

1.5 找出并删除mysql的配置文件

find /etc -name my.cnf
rm -rf /etc/my.cnf

二 、方案一:使用 MySQL 官方 Yum 源

2.1 Mysql 8.0下载

2.1.1 官方yum源下载

  • 关于 yum源 下载链接
    https://dev.mysql.com/downloads/repo/yum/
  • 下载对应版本mysql源到本地,如果系统是centos7,这里选择el7版本
    centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

noarch是Architecture的缩写,说明这个包可以在各个不同的cpu上使用
这里我们选择__mysql80-community-release-el7-7.noarch.rpm

2.1.2 直接选择对应版本下载:

https://repo.mysql.com/
找到相应版本下载: mysql80-community-release-el7-7.noarch.rpm
centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

2.1.3 下载rpm包

wget https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm 方案1
或者离线下载
https://www.cnblogs.com/jpxjx/p/16817724.html 方案2
centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

yum install mysql80-community-release-el7-7.noarch.rpm -y ... #安装rpm包
或者
rpm -ivh mysql80-community-release-el7-7.noarch.rpm ... #安装rpm包

yum install -y mysql-community-server # 会自动把客户端装上 方案1
或者

#参考redhat7 部署安装mysql8.0文档# #方案2
https://www.cnblogs.com/jpxjx/p/16817724.html

rpm -ivh mysql-community-common-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm #(注意这个装完才能装下面一个,否则会报错)
rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-compat-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.31-1.el7.x86_64.rpm #(注意上面两个装完才能装这个)

2.2 配置my.cnf文件

  • 可选项,如果不需要可跳过,但是建议)
    在mysql启动初始化前,一定要确认根据自己所需的MySQL参数,是否需要修改my.cnf文件
    比如区分表名大小写----->lower_case_table_names = 1
    在MySQL8.0之前,是可以在mysql启动后进行重新修改的
    但是8.0之后,只能在MySQL启动前进行配置
    所以强烈建议,在第一次初始化启动MySQL前,先进行配置my.cnf
    可参考:https://blog.csdn.net/gzt19881123/article/details/109511245 进行配置
#数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4

#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci

#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1

2.3 启动mysql服务并查看状态

systemctl start mysqld
systemclt status mysqld

2.4 查看默认密码并登录修改密码

grep "password" /var/log/mysqld.log

修改密码

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lqz12345?'; 

配置远程连接

USE mysql;
UPDATE mysql.user SET host = '%' WHERE user = 'root';
SELECT user, host, plugin, authentication_string FROM mysql.user;
FLUSH PRIVILEGES;

参考链接:[https://juejin.cn/post/7043605280541638669](https://juejin.cn/post/7043605280541638669) #MySQL 8.0 创建用户及授权
参考链接:https://juejin.cn/post/7043605280541638669 #MySQL 8.0 创建用户及授权

2.5 配置开机启动启动(可选)

安装MySQL之后,默认为不自启,需要手动开启

查看MySQL是否自启:systemctl is-enabled mysqld
开启自启 :systemctl enable mysqld
关闭自启 :systemctl disable mysqld

显示enable表示开机自启动,如果是disable,可以修改为开机自启动

systemctl enable mysqld.service # 开机自启动
systemctl disable mysqld.service # 禁用开机自启动

2.6 防火墙放行3306端口

永久开放3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
#重启防火墙
systemctl restart firewalld
#检测设定是否生效
iptables -L -n | grep 3306

开放防火墙端口
开启root远程登录权限后,还无法直接被外界连接,因为MySQL的端口号3306在Linux中默认关闭的。

注意:使用阿里云等云服务器还需要在控制台中安全组策略打开端口,此处省略。
查询3306端口是否开启

firewall-cmd --query-port=3306/tcp

firewall-cmd --zone=public --add-port=3306/tcp --permanent #开启3306
firewall-cmd --reload #重新加载防火墙
链接参考:https://www.cnblogs.com/zh76412950/p/16692706.html

2.7 安装后检查mysql版本

mysqladmin --version # 看到是8.0的版本
或
mysql -V # 看到是8.0的版本

三、方案二:通用二进制安装

glibc版本的Mysql,不是编译版的,是直接编译好的,相当于windows的绿色版
下载链接:https://dev.mysql.com/downloads/mysql/

3.1 清理一下环境

检查:mariadb

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

检查mysql的rpm包,有的话全删除
rpm -qa |grep -i mysql # -i表示忽略大小写
rpm -e --nodeps ... # 依次挨个删除
删除mysql相关的配置【my.cnf】和目录【mysql】

find /-name mysql #全部删除
/var/lib/mysql
rm -rf /var/lib/mysql
cp my.cnf my.cnf_bak #变相备份删除

3.2 创建用户和组

#创建一个用户组:mysql
groupadd mysql
#用户 (用户名/密码)【创建一个系统用户:mysql,指定用户组为mysql】
useradd -r -g mysql mysql
#检查用户组、用户是否存在
groups mysql

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

3.3 创建相关目录(软件目录,数据目录)

3.3.1 软件目录

mkdir -p /mnt/mysql-8.0 #用于存放安装包

3.3.2 数据目录

mkdir -p /usr/local/mysql-8.0 #安装目录

生产建议:软件目录和数据目录不要放在同一个地方,一般数据目录放在另一块磁盘上【数据磁盘】

3.4 设置权限

chown -R mysql.mysql /usr/local/mysql-8.0
chmod -R 755 /usr/local/mysql-8.0

3.5 上传并解压软件到数据目录

安装包下载路径: https://downloads.mysql.com/archives/community/

版本: 8.0.31 — os:Linux-Generic ----- osVersion:x86,64
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz # wget + url命令进行下载
tar -Jxvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz -C /usr/local/mysql-8.0/ # 解压到数据目录

Tips:
如果下载速度很慢,或服务器没有网络,可以在Windows中下载好,然后将资源包通过Xftp传到服务器中,在进行后续操作,
使用md5sum mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz命令检查资源包是否完整
centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

.tar.gz后缀:tar -zxvf 文件名
.tar.xz后缀:tar -Jxvf 文件名

3.6 建立软连接

in-s介绍: https://www.jianshu.com/p/b80f5e62b6dc
ln -s /usr/local/mysql-8.0my.cnf /etc/my.cnf

3.7 设置my.cnf

把默认/etc/my.cnf重命名或删除
centos7默认会有一个/etc/my.cnf文件,为了不影响安装,可以直接删除或重命名

mv /etc/my.cnf /etc/my.cnf.bak 或  rm /etc/my.cnf
vim /etc/my.cnf
[mysql]
#默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
default-character-set=utf8mb4
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
#数据存放目录
basedir=/usr/local/mysql-8.0
datadir=/usr/local/mysql-8.0/data
socket=/tmp/mysql.sock
#日志
log-error=/usr/local/mysql-8.0/data/mysql.log
pid-file=/usr/local/mysql-8.0/data/mysql.pid
#服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
[client]
port       = 3306
socket	   =/tmp/mysql.sock
character-set-server=utf8mb4

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
vi/vim命令介绍:https://blog.csdn.net/blood_Z/article/details/125064927

3.8 把bin目录设置到环境变量中

vim /etc/profile #环境变量

#添加以下内容
export PATH="$PATH:/usr/local/mysql-8.0/bin"

3.9 生效配置

source /etc/profile

3.10 启动MySQL

3.10.1 设置开机启动

①创建软链接

ln -s /usr/local/mysql-8.0/support-files/mysql.server /etc/init.d/mysqld

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
②赋予执行权限

 chmod +x /etc/init.d/mysqld

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
③添加为服务

 chkconfig --add mysqld
 #chkconfig --del mysqld(删除服务)

④查看服务列表

chkconfig --list

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

3.10.2 启动mysql

/etc/init.d/mysqld start

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

3.10.2查看是否启动

ps -ef | grep mysql

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

3.11 查看版本

mysql -V

mysql Ver 8.0.31 for Linux on x86_64 (MySQL Community Server - GPL)

3.12 初始化系统库表(系统数据,数据库要启动,必须依赖一些表,系统表)

cd /usr/local/mysql-8.0/bin
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql-8.0/ --datadir=/usr/local/mysql-8.0/data/ #初始化无密码 

或者

cd /usr/local/mysql-8.0/
./bin/mysqld --user=mysql --basedir=/usr/local/mysql-8.0 --datadir=/usr/local/mysql-8.0/data --initialize #初始化有密码 

如果想设置初始为空密码,可以在–initialize后添加-insecure参数
初始化语句解释:

参数 描述
defaults-file 指定配置文件(要放在–initialize 前面)
user 指定用户
basedir 指定安装目录
datadir 指定初始化数据目录
intialize-insecure 初始化无密码

#如果存在报错:

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
报错原因: Linux系统中缺少libaio-devel 软件包

yum install -y libaio-devel #安装libaio-devel

3.13 初始化数据,初始化管理员的临时密码

mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0/ --datadir=/usr/local/mysql-8.0/data/
== 会打印出密码,记住,然后需要修改root密码后才能正常使用数据库==

3.14 在登陆前修改密码(使用mysqld --initialize 初始化的数据)

初始的随机密码在/usr/local/mysql-8.0/data/mysql.log
mysql -uroot -p #输入原始密码: i(/iJUN3EOey

#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Lh@123456';
#刷新权限
FLUSH PRIVILEGES;

授权root用户允许远程登录

mysql>use mysql;
mysql>update user set user.Host='%'where user.User='root';
mysql>SELECT user, host, plugin, authentication_string FROM mysql.user;
mysql>flush privileges;
mysql>exit;

也可以创建新的可远程连接的用户

mysql>create user '用户名'@'主机' identified with mysql_native_password by '密码';
mysql>grant all privileges on *.* to '用户名'@'主机';
mysql>update user set user.Host='%'where user.User='用户名';
mysql>flush privileges;

3.15 配置防火墙:

centos7中:使用systemctl启动
上面安装好了,也设置好了,可以使用图形化工具远程一连接就报错了。
centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
这是因为防火墙没有允许这个连接,我们还需要再设置一下,两种方式关闭防火墙,或者开放端口。
systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #临时关闭防火墙
systemctl start firewalld #开启防火墙
systemctl restart firewalld #重启防火墙
systemctl disable firewalld #关闭防火墙开机启动
systemctl enable firewalld #开启防火墙开机启动

正式工作环境,为了信息安全建议先修改数据库默认端口,然后通过防火墙开放这个自定义端口再进行使用。
netstat -lntp #查看系统端口占用情况
centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

3.15.1 修改MySQL默认端口

vim /usr/local/mysql-8.0/my.cnf #修改配置文件my.cnf,将端口后修改为自定义端口号
centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

说明:
Linux系统端口号范围为0-65535,不同的范围有不同意义 0 不使用 1–1023 系统保留,只能由root用户使用 1024—4999 由客户端程序自由分配 5000—65535 由服务器端程序自由分配 查看端口号在/etc/services

3.15.2 防火墙开放端口

1)开启防火墙

systemctl start firewalld

2)防火墙开启端口

firewall-cmd --zone=public --add-port=33066/tcp --permanent

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux

如果需要关闭端口,可执行如下命令
firewall-cmd --zone=public --remove-port=33066/tcp --permanent

3)刷新防火墙配置

firewall-cmd --reload

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
4)查看已经开放的端口

firewall-cmd --list-ports

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
5)重启MySQL服务

systemctl start mysqld

centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
PS

chkconfig --add mysqld # 把mysqld的脚本添加到systemctl的管理中
chkconfig --list      # 查看可以通过systemctl管理的脚本
systemctl start mysqld
###至此,启动方式可以是
service mysqld start
或者
systemctl start mysqld
或者
/etc/init.d/mysqld start
或者
/usr/local/mysql-8.0/l/support-files/mysql.server start

3.16 测试连接

在Navicat上再次进行测试连接,成功了
centos7安装mysql8.0,mysql数据库linux部署,mysql,数据库,linux
参考链接:CentOS7下MySQL数据库二进制部署方法
https://mp.weixin.qq.com/s/iFOB7Ox4ADKxsb_52_nnGw文章来源地址https://www.toymoban.com/news/detail-810187.html

到了这里,关于Centos7详细安装部署Mysql8.0两种方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos7安装MySQL8

    Centos7安装MySQL8 MySQL版本:8.0.34 1.安装前准备 (1)查看是否安装mariadb [root@kb135 ~]# rpm -qa|grep mariadb (2)卸载mariadb并检查是否卸干净 [root@kb135 ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 2.安装mysql (1)将安装包复制到/opt/software文件夹下 (2)解压文件至/usr/local目录下 [root@kb135

    2024年02月11日
    浏览(38)
  • CentOS7安装MySQL8.0教程

    环境介绍 操作系统:Centos7.6 MySQL版本: 8.0.27 只要是8.0.*版本,那就可以按照本文说明安装 1、卸载MariaDB 安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。 1.1、查看是否安装mariadb 1.2、卸载 1.3、检查是否卸载干净 2.检查依赖 2.1、查看是否安装libaio(MySQL需要依赖

    2024年04月12日
    浏览(39)
  • CentOS7.9安装MySQL8.0

    目录 🧀写在前面 🧀前提条件 🧀安装MySQL8.0 🧀MySQL管理     🦐博客主页:大虾好吃吗的博客     🦐MySQL专栏:MySQL专栏地址         MySQL是一种开源的关系型数据库管理系统(RDBMS),它是由瑞典公司MySQL AB开发,并在2008年被甲骨文公司(Oracle Corporation)收购。MySQL是

    2024年02月15日
    浏览(37)
  • CentOS7安装Mysql8并进行主从复制配置

    CentOS7中安装Mysql8并配置远程连接和修改密码等: CentOS7中安装Mysql8并配置远程连接和修改密码等_霸道流氓气质的博客-CSDN博客 在上面实现安装Mysql8的基础上,克隆出两台机器,修改ip后进行mysql的主从复制搭建。 在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记

    2024年02月16日
    浏览(37)
  • 2023新,centos7安装mysql8.0.25

    1、下载rpm文件 进入到你想要的文件地址下 2、安装 3、配置my.cnf 4、启动查看重启服务 5、登入mysql并修改密码 6、修改可以远程登录

    2024年02月11日
    浏览(42)
  • Centos7安装mysql8.0操作步骤(yum安装方法)

    以下操作在Centos7.5上实操成功。 rpm -qa | grep -i mariadb(检查有没有mariadb) rpm -e  --nodeps  mariadb-libs-5.5.56-2.el7.x86_64(不检查依赖直接卸载) rpm -qa | grep mysql wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm yum -y install mysql80-community-release-el7-3.noarch.rpm rpm --import https://rep

    2023年04月15日
    浏览(62)
  • Linux(CentOS7)安装与卸载MySQL8.0图文详解

    Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照教程也没有能够安装成功,安

    2023年04月25日
    浏览(38)
  • MySQL8 概述、下载、安装、使用(Windows2019和centos7.9)

    1.1 数据库相关概念 在这一部分,先了解三个概念:数据库、数据库管理系统、SQL。 名称 全称 简称 数据库 存储数据的仓库,数据是有组织的进行存储 DataBase(DB) 数据库管理系统 操纵和管理数据库的大型软件 DataBase Management System (DBMS) SQL 操作关系型数据库的编程语言,定

    2024年02月16日
    浏览(39)
  • 记录CentOS7 Linux下安装MySQL8_适合正式环境_干货满满(超详细,默认开启了开机自启动,设置表名忽略大小写,提供详细配置,创建非root专属远程连接用户)

    安装前先清理mariadb和mysql相关文件:    通过命令: rpm -qa|grep mariadb 查询是否安装了mariadb    卸载: rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64(复制上面命令查到的完整名称)    通过命令: find / -name mysql 查询跟mysql相关的文件     删除文件命令:    rm -rf /etc/selinux/targeted/act

    2024年02月04日
    浏览(44)
  • centos7在线安装 jdk1.8+tomcat+mysql8+nginx+docker

    centos7 在线安装jdk1.8 安装tomcat mysql8 nginx docker

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包