CentOS7安装MySQL8.0教程

news2024/11/24 8:30:14

环境介绍
操作系统:Centos7.6
MySQL版本: 8.0.27
只要是8.0.*版本,那就可以按照本文说明安装

一、安装前准备

1、卸载MariaDB

安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。

1.1、查看是否安装mariadb
rpm -qa|grep mariadb
1.2、卸载
rpm -e --nodeps 文件名
1.3、检查是否卸载干净
rpm -qa|grep mariadb
2.检查依赖
2.1、查看是否安装libaio(MySQL需要依赖libaio库)
rpm -qa|grep libaio

如果没有安装则执行

yum -y install libaio //安装libaio 
2.2、查看是否安装numactl
rpm -qa|grep numactl

如果没有安装则执行

yum -y install numactl //安装numactl 

二、下载并安装MySQL

1、下载资源包

阿里云下载地址:https://mirrors.aliyun.com/mysql/MySQL-8.0/?spm=a2c6h.25603864.0.0.5f4c712bmNnZeW
官网下载地址:https://dev.mysql.com/downloads/mysql/
在这里插入图片描述

2、解压

本文安装包上传到了 /usr/local/ 目录下
进入安装包目录

cd /usr/local/

解压

tar -zxvf mysql-8.0.27-el7-x86_64.tar.gz
3、重命名

将解压后的文件夹重命名为mysql

mv mysql-8.0.27-el7-x86_64/ mysql
4、创建存储数据文件

在重命名后的mysql文件夹中创建data文件夹

mkdir mysql/data
5、设置用户组并赋权

先进入mysql文件夹

cd /usr/local/mysql

创建用户组

groupadd mysql

创建用户
-r:创建系统用户
-g:指定用户组

useradd -r -g mysql mysql

更改属主和数组

chown -R mysql:mysql ./

更改权限

chmod -R 755 ./
6、初始化MySQL

进入MySQL的bin目录

cd /usr/local/mysql/bin/

初始化

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

初始化完成后会打印一个随机密码,后面会用到。
在这里插入图片描述

7、配置参数文件
vi /etc/my.cnf

配置文件修改为以下内容 也可以根据自己需要设置参数

# client:客户端配置部分,这里定义了连接到MySQL服务器的客户端的一些参数
[client]
# MySQL服务器监听的端口,默认为3306
port = 3306
# MySQL服务器的Unix套接字文件路径
socket = /usr/local/mysql/data/mysql.sock
# 客户端使用的默认字符集,设置为utf8mb4
default-character-set = utf8mb4

# mysql:MySQL客户端程序的配置部分
[mysql]  
# MySQL客户端使用的默认字符集,同样设置为utf8mb4
default-character-set = utf8mb4

# mysqld:MySQL服务器的配置部分,其中包含了一些重要的服务器参数设置
[mysqld]  
# 控制服务器是否应执行客户端字符集的握手。在此设置为FALSE,表示服务器不应执行字符集的握手
character-set-client-handshake = FALSE
# 服务器默认字符集设置为 utf8mb4
character-set-server = utf8mb4
# 服务器默认排序规则设置为 utf8mb4_general_ci
collation-server = utf8mb4_general_ci
# 每次客户端连接到服务器时,都会执行的初始化SQL语句,此处设置为设置字符集为utf8mb4
init_connect = 'SET NAMES utf8mb4'

# MySQL服务器监听的端口,同样设置为3306
port = 3306
# MySQL服务器的Unix套接字文件路径
socket = /usr/local/mysql/data/mysql.sock
# 禁用外部锁定功能
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/mysql/data
#lower_case_table_names=1
#如果要设置lower_case_table_names可以在初始化里面设置 ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1

# mysqldump工具的配置部分
[mysqldump]
# 启用快速模式,用于导出数据
quick
# 用于mysqldump导出数据时允许的最大数据包大小
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

配置后修改 /etc/my.cnf 的权限为777

chmod 777 /etc/my.cnf
8.启动MySQL
/usr/local/mysql/support-files/mysql.server start
9.设置软连接,并重启MySQL
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/mysql.sock /var/mysql.sock
service mysql restart
10、登录并更改密码
[root@localhost bin]# mysql -uroot -p
Enter password: 输入初始化随机密码

两种改密方式二选一

alter user 'root'@'localhost' identified by '123456';
set password for root@localhost = '123456';
11.开放远程连接
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;    //刷新权限
12、连接工具测试连接MySQL

在这里插入图片描述
如果服务器本地可以连接,但是连接工具远程连接不进去,则需要检查一下防火墙是否放行3306端口,也可以暂时先关闭防火墙后重试。

13、关闭防火墙
systemctl stop firewalld

防火墙相关设置

# 查看当前防火墙状态
sudo systemctl status firewalld

# 如果防火墙当前是关闭状态(inactive),则开启防火墙
sudo systemctl start firewalld

# 若要让防火墙在系统重启后仍然保持开启状态(永久开启)
sudo systemctl enable firewalld

# 开放 81 端口并设置为永久生效
sudo firewall-cmd --permanent --add-port=3306/tcp

# 重新加载防火墙规则使之生效
sudo firewall-cmd --reload

# 查看开放了哪些端口
firewall-cmd --list-ports
14、MySQL启动和停止

CentOS6和CentOS7命令都可以使用。

启动

service mysql start
systemctl start mysql

停止

service mysql stop
systemctl stop mysql

重启

service mysql restart
systemctl restart mysql

查看状态

service mysql status
systemctl status mysql

三、设置开机自启动(可选)

将服务文件拷贝到 /etc/init.d下,并重命名为mysqld

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

赋予可执行权限

chmod +x /etc/init.d/mysqld

添加服务

chkconfig --add mysqld

显示服务列表

chkconfig --list

注:如果看到mysqld的服务,并且3,4,5都是on的话则成功,如果是off,则执行

chkconfig --level 345 mysqld on

重启系统

reboot

重启后查看mysql是否开机自启动

ps -ef|grep mysql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1588444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在Windows通过固定tcp公网地址ssh远程访问本地Kali Linux

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 本文主要介绍如何在Kali系统编辑SSH配置文件并结合cpolar内网穿透软件,实现公网环境ssh远程连接本地kali系统。 1. 启…

bilibili PC客户端架构设计——基于Electron

众所周知,bilibili是个学习的网站,网页端和粉版移动端都非常的好用,不过,相对其它平台来说bilibili的PC客户端也算是大器晚成了。在有些场景PC客户端的优势也是显而易见的,比如,跓留电脑桌面的快捷、独立的…

实战纪实 | 编辑器漏洞之Ueditor-任意文件上传漏洞 (老洞新谈)

UEditor 任意文件上传漏洞 前言 前段时间在做某政府单位的项目的时候发现存在该漏洞,虽然是一个老洞,但这也是容易被忽视,且能快速拿到shell的漏洞,在利用方式上有一些不一样的心得,希望能帮助到一些还不太了解的小伙…

JAVA中如何确保N个线程可以访问N个资源,但同时又不导致死锁?

使用多线程的时候,一种非常简单的避免死锁的方式:指定获取锁的顺序,并强制现场按照指定的顺序获取锁。因此,所有线程按照同样的顺序加锁和释放就不会出现死锁。 请问什么是死锁(deadlock)? 竞争不可抢占资源形成死锁 如果有两…

工业采集网关有何功能?可以带来哪些价值?-天拓四方

一、行业背景 随着工业领域的快速发展,尤其是智能制造的兴起,工业自动化、智能化和数字化已成为工业转型升级的必然趋势。在这一进程中,工业数据采集和处理扮演着至关重要的角色。作为连接工业现场设备、传感器与上层管理系统的桥梁&#xf…

2024年环境预防与新材料国际会议 (EPNM 2024)

2024年环境预防与新材料国际会议 (EPNM 2024) 2024 International Conference on Environmental Prevention and New Materials 【会议简介】 2024年环境预防与新材料国际会议即将在张家界召开。本次会议旨在汇聚全球环境预防与新材料领域的专家学者,共同探讨环境…

【MATLAB源码-第37期】matlab基于STBC(空时分组码)的MIMO系统误码率仿真。

操作环境: MATLAB 2022a 1、算法描述 空时分组码(Space-Time Block Code,简称STBC)是一种在多输入多输出(MIMO)无线通信系统中用于提高数据传输可靠性的编码技术。MIMO技术利用多个发射和接收天线来同时…

RA4000CE为汽车动力传动系统提供解决方案

目前汽车电气化的水平越来越高,其中比较显著的一个发展方向就是将发动机管理系统和自动变速器控制系统,集成为动力传动系统的综合控制(PCM)。作为汽车动力的核心部件,通过电子系统的运用,将外部多个传感器和执行环节的数据进行统一…

私有化即时通讯软件,WorkPlus提供的私有化、安全通讯解决方案

在当今信息化快速发展的时代,安全问题已经成为各行各业关注的焦点。特别是在金融、政府单位和芯片等关键行业,信息安全的重要性不言而喻。这些行业涉及到大量的敏感数据和关键信息,一旦发生泄露,可能会对国家安全、企业利益甚至个…

上位机图像处理和嵌入式模块部署(改进的qmacvisual动态插件卸载)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们讨论过,qmacvisual虽然提供了很多的功能,包括的种类很多,但是总有一些功能是客户希望定制的。这些都是…

局域网内部使用的视频会议系统推荐

随着远程办公的普及和全球化的发展趋势,企业需要一个高效、灵活、安全的音视频会议解决方案,以支持远程办公的协同工作、跨地域沟通等需要。私有化音视频会议就是一个适合企业自身部署的解决方案。它不仅能够满足企业信息管理和保密的需求,而…

关于DNS解析那些事儿,了解DNS解析的基础知识

DNS,全称Domain Name System域名系统,是一个将域名和IP地址相互映射的一个分布于世界各地的分布式数据库,而DNS解析就是将域名转换为IP地址的过程,使人们可以轻松实现通过域名访问网站。DNS解析是网站建设非常关键的一步&#xff…

事务的隔离性

参考: 小林coding MySQL服务器同时处理多个事务时,会出现脏读,不可重复读,幻读问题。 脏读 一个事务读到另一个未提交事务修改过的数据。 举例:事务A先读取数据,并对其进行修改,此时事务B进行读取获取到…

2024妈妈杯mathorcup B题详细思路代码:甲骨文智能识别中原始拓片单字自动分割与识别研究

甲骨文智能识别中原始拓片单字自动分割与识别研究: 问题一: 图像预处理:这通常包括将图像转换为灰度图,剔除噪声,调整对比度,以及可能的二值化处理,使得甲骨文的特征更加突出。此外&#xff0c…

企企通入选2023年度中国高科技高成长企业、2023中小微企业数字化转型服务商TOP100榜单!

近期,2023年度中国高科技高成长企业系列榜单、2023中小微企业数字化转型服务商TOP100重磅发布,企企通凭借在数字化采购领域的产品能力和服务能力等综合实力,连续斩获多个奖项,得到主流权威媒体机构认可,印证了企企通的…

leetcode 1702

leetcode 1702 题目 例子 代码思路 class Solution { public:string maximumBinaryString(string binary) {int n binary.size();int i binary.find(0);if(i string::npos){return binary;}int zeros count(binary.begin(), binary.end(), 0);string s(n, 1);s[izeros-1]…

Jmeter02-2:参数化组件其他方式

0、Jmeter组件:参数化概述 0.1 是什么? 参数化是动态的获取并设置数据 0.2 为什么? 比如执行批量操作时,批量插入或批量删除,之前数据都是手写的,每执行完都要修改一次,效率太低 而参数化就是…

数字化社交的引擎:解析Facebook的影响力

随着数字技术的飞速发展,社交网络已成为人们日常生活中不可或缺的一部分。而在这个数字化社交的世界中,Facebook作为最具影响力和知名度的平台之一,其所扮演的角色越发重要。本文将深入解析Facebook在数字化社交领域的影响力,并探…

C/C++ 配置 jemalloc 的一些选项,处理一些疑似内存泄漏的问题。

在 jemalloc 之中有三种配置 jemalloc 选项的一些方式。 1、修改选项代码默认值(重新编译) 2、修改环境变量 MALLOC_CONF,并重启应用程序 注意: 仅支持 opt. 节配置选项 export MALLOC_CONF"retain:true,dirty_decay_ms:2…