当前位置: 首页 > news >正文

MySQL8.0Linux安装及主从的搭建

MySQL8.0Linux安装教程

下载并安装

需要说明的一点是我使用的是SSH secure shell Client连接linux系统的,它的用法和命令窗口差不多。界面如图:一样的使用Linux命令操作。

话不多说
第一步:
1)、切换到 /usr/local下

cd /usr/local

2)、创建mysql文件夹

mkdir mysql8

3)、切换到mysql文件夹下

cd mysql8

4)、下载mysql8.0安装包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

如果执行没反应,可以复制安装包链接在Windows的浏览器下载好,再用SSH移到 /use/local/mysql文件夹下面(这个时候就提现出了SSH的便利性)

5)、解压mysql8.0安装包

tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 

6)、重命名解压出来的文件夹,这里改成mysql-8.0

mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql8

7)、/use/local/mysql8文件夹下创建data文件夹 存储文件

mkdir data

8)、分别创建用户组以及用户和密码(如果提示已存在说明之前有创建过了)

groupadd mysql
useradd -g mysql mysql

9)、授权刚刚新建的用户

chown -R mysql.mysql /usr/local/mysql/mysql-8.0
chmod 750 /usr/local/mysql/data -R

10)、配置环境,编辑/etc/profile文件

vim /etc/profile在最后一行加
export PATH=$PATH:/usr/local/mysql8/bin:/usr/local/mysql8/lib

11)、编辑my.cnf文件

vim /etc/my.cnf
按下面复制进去就好了,#号开头的不用管,一样,添加完之后,换行,打出“:sq”,用来保存文件并退出

[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql8
datadir=/usr/local/mysql8/data
log-bin=/usr/local/mysql8/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql8/data
innodb_log_group_home_dir=/usr/local/mysql8/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0[mysqld_safe]
log-error=/usr/local/mysql8/data/mysql.log
pid-file=/usr/local/mysql8/data/mysql.pid

12)、切换到/usr/local/mysql8/bin目录下

cd bin

13)、初始化基础信息,得到数据库的初始密码

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

如图,复制出红框的初始密码,保存到本地,后面需要使用到。
ISSUE:如果因为路径等各种问题需要重新初始化的,需要清空上面创建的data文件,在data所在的目录下使用 rm -rf data 命令。

14)、复制 mysql.server 文件,在/usr/local/mysql8目录下执行

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

15)、赋予权限

chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld

16)、检查一下/var/lib/mysql是否存在,否则进行创建

mkdir /var/lib/mysql 

然后再赋予权限

chown -R mysql:mysql /var/lib/mysql/ 

17)、启动数据库,有SUCCESS字眼说明MySQL安装完成

service mysql start 

如果发现启动失败,可以先查看data里面的mysql.log,如果有提示3306这样的字样,第一个想到的应该是端口被占用,
使用lsof -i:端口号,查看是哪个PID(进程号)占用了该端口,然后使用kill PID(进程号)杀掉进程,重新执行service mysql start

修改密码,并设置远程连接

1)、修改数据库root账号的密码,并设置可以远程访问(因为root默认是不能远程访问的)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'psh120370';

2)、执行flush privileges; 使密码生效

flush privileges;

3)、选择数据库

 use mysql;

4)再修改远程连接并生效

update user set host='%' where user='root';

5)执行提交命令,搞定!

flush privileges;
最后就可以使用root账号去登录mysql了

题外:
给mysql创建新的数据库用户并授予权限

1)创建用户(名称随意,这里的用户名称为mysql)并可以远程访问
CREATE user ‘mysql’@‘%’;
#修改密码
alter user ‘mysql’@‘%’ identified with mysql_native_password by ‘tcl.2021’;

2)创建新的数据库
#create database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;

3)把新的数据库授权给新用户
#将test库的所有权限赋予mysql用户
grant all privileges on test.* to “mysql”@“%”;
grant all privileges on test.* to “tcl”@“%”;

4)、刷新权限
flush privileges;

开机自启

添加为服务: chkconfig --add mysqld

查看服务列表: chkconfig --list

看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下:chkconfig --level 345 mysqld on

在这里插入图片描述

重启计算机:reboot

MYSQL主从

前提:配置好两台mysql

确认mysql server 的uuid是否相同

-- 找到 auto.cnf 文件
find  / -iname "auto.cnf"/usr/local/mysql8/data/auto.cnf-- 如果相同需要修改
vim  /usr/local/mysql8/data/auto.cnf

或者直接删除,会重新生成

cd   /usr/local/mysql8/data/cp auto.cnf  auto-back.cnfrm -rf auto.cnf

1、主机配置文件

编辑my.cnf文件

vim /etc/my.cnf

具体参数配置如下:

  • 必选:
#[必须]主服务器唯一ID
server_id=1#[必须]启用二进制日志,指名路径。比如:自己本地的路径/log/mysqlbin
log-bin=mysql-bin
  • 可选:
#[可选] 0(默认)表示读写(主机),1表示只读(从机)
read-only=0#设置日志文件保留的时长,单位是秒
binlog_expire_logs_seconds=6000#控制单个二进制日志大小。此参数的最大和默认值是1GB
max_binlog_size=200M#[可选]设置不要复制的数据库
binlog-ignore-db=test#[可选]设置需要复制的数据库,默认全部记录。比如:binlog-do-db=atguigu_master_slave
binlog-do-db=需要复制的主数据库名字#[可选]设置binlog格式
binlog_format=STATEMENT

2、从机配置

编辑my.cnf文件

vim /etc/my.cnf
#[必须]从服务器唯一ID
server_id=2
server_id
#[可选]启用中继日志
relay-log=mysql-relay

3、主机:建立账户并授权

#在主机MySQL里执行授权主从复制的命令
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'从机器数据库IP' IDENTIFIED BY 'abc123';
#5.5,5.7

如果使用的是MySQL8,需要如下的方式建立账户,并授权slave:

CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';#此语句必须执行
ALTER USER 'slave1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';flush privileges;

在这里插入图片描述

查询Master的状态,并记录下File和Position的值。

show master status;

在这里插入图片描述

mysql-bin.000070 1106

4、从机:配置需要复制的主机

从机上复制主机的命令

CHANGE MASTER TO
MASTER_HOST='主机的IP地址',
MASTER_USER='主机用户名',
MASTER_PASSWORD='主机用户名的密码',
MASTER_LOG_FILE='mysql-bin.具体数字',
MASTER_LOG_POS=具体值;

这里需要根据自己的服务器信息做修改

CHANGE MASTER TO MASTER_HOST='192.168.158.134',MASTER_USER='slave1',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000070',MASTER_LOG_POS=1106;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N4TE0hEA-1678278105443)(C:\Users\IsTrueLove\AppData\Roaming\Typora\typora-user-images\image-20230307222507545.png)]

启动slave同步

START SLAVE;

接着,查看同步状态:

SHOW SLAVE STATUS\G

如果下面两个参数都是yes,就配置成功了

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hiMrPDGO-1678278105443)(C:\Users\IsTrueLove\AppData\Roaming\Typora\typora-user-images\image-20230308201326660.png)]

如果出错,可能的原因有:

1. 网络不通
2. 账户密码错误
3. 防火墙
4. mysql配置文件问题
5. 连接服务器时语法
6. 主服务器mysql权限

关闭主从:

stop slave;

如果想要重新配置主从,就需要停止从服务器复制功能,再使用需要重新配置主从。否则会报错如下:

重新配置主从,需要在从机上执行:

stop slave;
reset master; #删除Master中所有的binglog文件,并将日志索引文件清空,重新开始所有新的日志文件(慎用)

相关文章:

MySQL8.0Linux安装及主从的搭建

MySQL8.0Linux安装教程 下载并安装 需要说明的一点是我使用的是SSH secure shell Client连接linux系统的,它的用法和命令窗口差不多。界面如图:一样的使用Linux命令操作。 话不多说 第一步: 1)、切换到 /usr/local下 cd /usr/…...

苹果新专利实现无线技术传输睡眠数据,蓝牙在智能家居中的应用

苹果于 2017 年 5 月收购了芬兰科技公司 Beddit,只是在过去 6 年时间里并没有太大的动作。根据美国商标和专利局本周公示的清单,苹果获得了一项 Beddit 相关的技术专利。 根据专利描述,苹果使用一根或者多根天线,利用电磁辐射的…...

银行数字化转型导师坚鹏:数字化转型为什么需要致良知与知行合一

在银行数字化转型过程中,特别需要致良知与知行合一哲学思想的指导。 知中有行,行中有知;行极而知,知极而行;知行无端,知行无始。知与行是一件事,做事与培养本体(修心)也是…...

Web前端学习:章三 -- JavaScript预热(二)

六五:作用域与function function:函数,不是数学上的函数,与写代码有关 JS中的函数:运用它,起个名字,然后对函数进行调用,即可将函数中的内容执行一遍 1、function 最基本的作用域…...

Excel绘制数据对比表格-表格可视化

Word中生成的表格一般比较单调,若一组数据存在对比的情况时,读者/审稿人难以直接通过详细对比数据来分析,此时若可以将该组数据可视化来对比则为好,Excel则可实现该功能。 关于有些期刊需要提供表格中的数据便于复制等情况时&…...

究竟是谁负了谁,来自底层测试的2022年终总结

前言 说实话坐在椅子前,都想好了,该怎么去写,甚至感觉有好多要写的,但是当我坐在椅子上时,却不知道该怎么开头了,不知道是不是紧张?还是不舍?难道还没有跟过去挥手告别的勇气吗&…...

C++——IO流

目录 C语言的输入与输出 流是什么 CIO流 C标准IO流 C文件IO流 二进制读写 文本读写 stringstream的简单介绍 C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键 盘)读取数据,并将值存放在变量中。…...

网络 | UDP与TCP协议讲解 | TCP可靠性是怎样实现的?

文章目录前置知识查看网络状态的工具查看进程idUDP协议协议格式UDP只有接收缓冲区基于UDP的应用层协议TCP协议流的理解协议格式确认应答机制缓冲区序号的作用流量控制超时重传机制6位标志位紧急数据的处理三次握手listen的第二个参数全连接和半连接队列都维护了什么信息&#x…...

JavaEE——简单介绍Thread类以及线程的基本操作

文章目录一、Thread 类中的常见构造方法二、Thread 的一些常见属性三、线程的启动——start()isAlive() 方法的解释四、线程中断五、线程等待-join()了解六、简单解释线程休眠一、Thread 类中的常见构造方法 我们已知,Thread 类是Java中多线程中的一个关键类&#…...

Java的数据库编程:JDBC

Content 🎉1什么是API 🎉2.什么是JDBC 🎉3.数据库驱动包的安装 🎉4.数据库安装包在idea的使用 🎉5.JDBC的增删改查的简单实现 今天为大家带来JAVA的数据库编程,也就是用Java实现数据库 数据库的最基本的操作就是…...

蓝桥冲刺31天之第六天

今天是摆子的一天,明天我要肝一整天的第四题!!! PS:一个普通的排序罢了 import java.io.*; import java.util.Arrays; import java.util.Scanner;/*** ClassName 考勤刷卡* Description TODO* Author 小怂很怂* Date 2…...

Streamlit 工具记录

Streamlit 是基于 Python 的 Web 应用程序框架,可视化数据,分析结果。 Streamlit 是一个开源库,可在短时间内开发机器学习可视化仪表板。只需几行代码就可以构部署强大的数据应用程序。Streamlit 可将仪表板的开发时间从几天缩短至几小时。 …...

GreenPlum小结

什么是GreenPlum?GreenPlum是业界最快最高性价比的关系型分布式数据库,它在开源的PostgreSQL的基础上采用MPP架构(Massive Parallel Processing,海量并行处理),具有强大的大规模数据分析任务处理能力。GreenPlum作为大数据融合存储…...

C语言中数组和指针

文章目录前言一、指针的概念二、指针的大小三、指针的用法1.指针指向变量2.指针指向数组3.指针指向函数总结前言 本文将给大家带来C语言中非常重要的两个知识点,指针和数组。 一、指针的概念 指针,是C语言中的一个重要概念及其特点,也是掌…...

Leetcode.剑指 Offer II 022 链表中环的入口节点

题目链接 Leetcode.剑指 Offer II 022 链表中环的入口节点 mid 题目描述 给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null。 为了表示给定链表中的环&#…...

4种不同编程语言的打印方式

意义 打印方式是编程中不可或缺的一部分,它可以帮助开发人员有效地调试和测试代码,并提供有用的信息来监视程序的运行状态和性能。 编程语言中的打印方式是指将程序输出到终端或控制台上进行显示。这个功能在编程中非常重要,因为它可以帮助开…...

websocket介绍

我们聊聊轮询技术,什么是轮询?轮询就是在特定的时间间隔,由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。 轮询分为两种: 短轮询:通过不断的向服务端发送数据,客户端发送Request,服务端直接返回Response(不管服务端数据有没有改变)。长轮…...

Educational Codeforces Round 144 (Rated for Div. 2),C,D

C. Maximum Set 思路: 我们求最大数组,显然是L一直乘2,直到再乘2就越过区间位置。我们说过,再乘一个2就不行,那么我们除一个2,换句话说,就是再乘一个4就不行了。发现,我们可能有机会乘一个3&a…...

【redis学习篇】Redis三种持久化方式详解

官方文档 一、Redis持久性 Redis如何将数据写入磁盘 持久性是指将数据写入持久存储,如固态磁盘(SSD)。Redis提供了一系列持久性选项。其中包括: RDB(快照):RDB持久性以指定的时间间隔执行数据…...

垃圾回收中的分代年龄

为什么CMS里的分代年龄是6而不是15 CMS (Concurrent Mark Sweep) 是一种基于分代的垃圾收集器,其中分代年龄指的是一个对象在年轻代中经历了多少次垃圾收集。在 CMS 中,当一个对象的分代年龄达到阈值时,就会被晋升到老年代中。 在 CMS 中&a…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

python/java环境配置

环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

反射获取方法和属性

Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

2023赣州旅游投资集团

单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...