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

news2025/1/25 9:24:13

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.cnf

rm -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文件,并将日志索引文件清空,重新开始所有新的日志文件(慎用)

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

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

相关文章

已解决hint : See above for output from the failure.

已解决(pip install wxPython安装失败)error: legacy-instal1-failure Encountered error while trying to install package.wxPython note: This is an issue with the package mentioned above,not pip. hint : See above for output from …

关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解

关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解前言一、各坐标系的含义二、坐标系转换1.世界坐标系与相机坐标系(旋转与平移)2.相机坐标系与图像坐标系(透视)3.图像坐标系与像素坐…

【UE4 RTS游戏】02-摄像机运动_完成摄像机在X轴上运动的相关步骤

效果通过控制键盘WS键使得“CameraPawn”进行前后移动步骤将landscape的Z轴位置更改为0删除“PostProcessVolume”将“LightmassImportanceVolume”移入Lighting文件夹内新建一个蓝图类,父类是Pawn,命名为“CameraPawn”将“MyController”重命名为“Cam…

详解JVM

详解JVM 最近学习了:周志明《深入理解高并发编程》;; 特此简要对学习做了部分总结,方便后续对JVM相关知识的完善和巩固; 若想深入了解学习,可阅读上述参考原著; Java内存区域与OOM 运行时数据…

大数据 | (三)centos7图形界面无法执行yum命令

大家好,今天是三八女神节了! 你知道吗?世界上第一位电脑程序设计师是名女性,Ada Lovelace (1815-1852)。 她是一位英国数学家兼作家,第一位主张计算机不只可以用来算数的人,也发表了第一段分析机用的演算…

vector中迭代器失效的问题及解决办法

目录 vector常用接口 vector 迭代器失效问题 vector中深浅拷贝问题 vector的数据安排以及操作方式,与array非常相似。两者的唯一差别在于空间的运用的灵活性。array 是静态空间,一旦配置了就不能改变;要换个大(或小) 一点的房子&#x…

CorelDRAW Graphics Suite2023更新内容介绍

懂设计的职场人都知道这款软件,CorelDRAW是一款非常高效的矢量图形设计软件。CorelDRAW操作界面简洁易懂,能够为用户提供精确地创建物体的尺寸和位置的功能,减少点击步骤,提高设计效率,节省设计时间。功能比普通的美图…

简单理解TransFormer

背景:听了李宏毅老师关于transformer的讲解,觉得有必要记录一下,里面的PPT都是李宏毅老师的内容(不喜勿喷)1.self-attention在介绍transformer之前,必须先了解self-attention(1) 先将X输入Embedding(a Wx), 然后a乘相关的权重,生…

Day11-网页布局实战-CSS3动画

文章目录一 CSS3动画1 2D动画案例1-鼠标输入移入DIV 让图片旋转90度案例2-鼠标输入移入DIV 缩放图片案例3-贯穿项目-DIV移动2 animation动画播放器案例1-基础案例案例2-使用百分比关键帧定义动画案例3-旋转的图片案例4-贯穿案例-轮播图3 多余文本省略号...代替案例1-多余文本..…

一 Go环境搭建

1. 下载地址 https://golang.google.cn/dl/ 傻瓜式安装,自动会配置path的变量,安装完成后可以使用go version 查看当前安装的版本 本文使用目前最新的1.20.2版本 2. 配置go环境 cmd控制栏打开输入以下命令(如果cmd有问题可以尝试powershe…

340秒语音芯片,轻松实现语音交互,畅享智能生活WTV380语音ic方案

随着智能家居、安防报警、宠物用品 等,智能设备的普及,语音交互技术正在逐渐成为人机交互的主要方式之一。而如何实现稳定高效的语音交互,就需要借助先进的语音芯片技术。今天,我们介绍的是一款高性能的语音芯片——WTV380&#x…

Gamma矫正

Gamma 曲线Gamma校正被使用在8位RGB图中。用来解决在有限的存储空间中保存尽可能多的人类感受敏感的色彩内容。Gamma 矫正Gamma校正的方式就是采样时,和输出到显示器给人类看时,对亮度进行的调整.如采样时 Gamma1/2.2 调亮Gamma,如显示时 Gamma2.2 调暗Gamma实际亮度…

【Redis】Redis慢查询

文章目录慢查询记录慢查询两个配置参数修改配置参数慢查询日志慢查询记录 我们都知道像mysql等持久化数据库会有慢查询日志,其实Redis中也有慢查询日志的功能。慢查询就是系统在执行命令的前后计算每条命令的执行时间,如果超过我们预设的时间&#xff0c…

登录接口-简约版(工作日记4)

前提条件: 1、jmeter接口测试工具 2、接口信息 获取验证码信息 登录接口信息 题外话: 接口返回的数据中如果有文字就会乱码 怎么解决 1、进入jmter文件–进入bin文件夹,找到jmeter.properties文件 2、右键打开,可以用文本模…

基于遗传算法的CVRP建模求解(Python)

带容量约束的车辆路径优化问题,CVRP,对一系列装卸货点进行适当的路径规划,在满足约束条件(客户需求、车辆载重和容积、车型、车辆行驶里程、配送中心数量等限制)和目标最优化(路程最短、成本最低、使用车辆…

点灯大师--点个正点原子阿尔法开发板的灯

点灯大师–点个正点原子阿尔法开发板的灯 文章目录点灯大师--点个正点原子阿尔法开发板的灯正点原子阿尔法开发板点灯1、使能 GPIO1 时钟2、设置 GPIO1_IO03 的复用功能3、配置 GPIO1_IO034、设置 GPIO5、控制 GPIO 的输出电平五种点灯的方法1.在一个驱动文件中实现寄存器初始化…

【C语言】编译+链接

一、程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。详解编译链接翻译环境1.组成一个程序的每个源文件通过…

STM32电动车报警器

目录 项目需求 项目框图 硬件清单 振动传感器介绍及实战 振动传感器介绍 振动传感器编程实现 继电器介绍及实战 继电器工作原理 433M无线发射接收模块介绍及实战 433M无线发射接收模块介绍 ​编辑 433M编程实现 项目设计及实现 编程实现 项目需求 点击遥控器A 按键…

规约第二章

文章目录有限域的定义Definition of Finite Field单位元运算举例素数域群阿贝尔群阿贝尔循环群循环子群阿贝尔循环群且阶是素数的有限域的定义Definition of Finite Field 单位元 这里一般只需要记住2个0,1 。0是加法的单位元,1是乘法的单位元。以及逆…

【JavaScript UI库和框架】上海道宁与Webix为您提供用于跨平台Web应用程序开发的JS框架及UI小部件

Webix是Javascript库 一种软件产品 用于加速Web开发的 JavaScript UI库和框架 Webix用于跨平台Web应用程序开发的JS框架,为您提供102个UI小部件和功能丰富的CSS/HTML5 JavaScript控件 开发商介绍 Webix团队由由热衷于创建高质量网络产品的专业人士组成&#xff…