linux下安装mysql和主从搭建_亲测成功

linux下安装mysql和主从搭建_亲测成功

linux下安装mysql

yum list installed | grep mysql  #查看系统中是否已安装mysql软件yum -y remove mysql-libs.x86_64  #删除mkdir -pv /data/softwarecd /data/software/wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gztar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.24-linux-glibc2.12-x86_64 mysql-5.7.24mkdir -pv /data/datas/mysql/data  #创建数据保存目录
cat /etc/group |grep mysql  #查看mysql用户组
cat /etc/passwd |grep mysql #查看mysql用户groupadd mysql #创建组
useradd mysql -g mysql #指定组创建用户
usermod -s /sbin/nologin mysqlmkdir -pv /data/apps
mv mysql-5.7.24 /data/apps/
chown -R mysql:mysql /data/apps/mysql-5.7.24
chown -R mysql:mysql /data/datas/mysqlcd /data/apps/mysql-5.7.24/bin/
./mysqld --user=mysql --basedir=/data/apps/mysql-5.7.24/ --datadir=/data/datas/mysql/data --initialize
#如果报libaio.so错:yum -y install libaio
#初始化mysql 成功之后记住密码  root@localhost: y%hrdMhc4wDfcd /data/apps/mysql-5.7.24/support-files/
vim mysql.server
basedir=/data/apps/mysql-5.7.24
datadir=/data/datas/mysql/data#将默认生成的my.cnf备份
mv /etc/my.cnf /etc/my.cnf.bak./mysql.server start # 启动mysql成功
./mysql.server stop

配置mysql

mysql --versionln -s /data/apps/mysql-5.7.24/bin/mysql /usr/bin/mysqlmysql --versioncp my-default.cnf /data/apps/mysql-5.7.24/my.cnf  #my-default.cnf新版本没有这个文件,网上找模版配置文件cd /data/apps/mysql-5.7.24/vim my.cnf  #修改配置文件
[client]
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET  NAMES utf8mb4'basedir = /data/apps/mysql-5.7.24
datadir = /data/datas/mysql/data##设置开机启动
cp /data/apps/mysql-5.7.24/support-files/mysql.server /etc/init.d/mysqldchmod 755 /etc/init.d/mysqld #可执行权限
chkconfig --list mysqld  # 确认MySQL自启动
chkconfig mysqld on  #设置MySQL开启自启动
chkconfig --list mysqldmysqld  0:off 1:off 2:on 3:on 4:on 5:on 6:off # 如果2--5为on的状态就OK

root密码与远程连接

service mysqld start#初始化mysql用户root的密码
./bin/mysqladmin -uroot -p'y%hrdMhc4wDf' password 'root'  #y%hrdMhc4wDf为上面初始化mysql生成的随机密码mysql -uroot -p  #输入密码进入#mysql远程授权
mysql -uroot -p  #输入密码进入
grant all privileges on *.* to 'root'@'%' identified by 'root';
FLUSH PRIVILEGES;#开放端口
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m multiport --dports 3306 -j ACCEPT
service iptables restart

主从配置

主配置
cd /data/apps/mysql-5.7.24/vim my.cnf
port = 3306
server_id = 52 #服务id,一般为ip后三位
#binlog-do-db = test #要同步的数据库
#binlog-ignore-db = mysql,sys,information_schema,performance_schema #不用同步的数据库,多个以逗号分隔
log-bin = mysql-bin #开启log-binmax_binlog_size = 500M
binlog_cache_size = 2M
max_binlog_cache_size = 4M
expire_logs_days = 30
max_connections = 500
max_connect_errors = 10000
table_open_cache = 256
long_query_time = 1
slow-query-log
slow_query_log_file = /data/datas/mysql/data/slow_query_log_file.logservice mysqld restart #重启mysql -uroot -p
create user 'repl'@'%' identified by '123456'; #创建用户
grant replication slave on *.* to 'repl'@'%' identified by '123456'; #授权
flush privileges;show master status; #查看状态
从配置
cd /data/apps/mysql-5.7.24/vim my.cnf
port = 3306
server_id = 53 #服务id,一般为ip后三位
read_only = 1 #只读log-bin = mysql-bin
max_binlog_size = 500M
binlog_cache_size = 2M
max_binlog_cache_size = 4M
expire_logs_days = 30
max_connections = 500
max_connect_errors = 10000
table_open_cache = 256
long_query_time = 1
slow-query-log
slow_query_log_file = /data/datas/mysql/data/slow_query_log_file.logrelay_log = /data/datas/mysql/data/mysqld-relay-binrelay_log-index = /data/datas/mysql/data/mysqld-relay-bin.indexservice mysqld restart #重启mysql -uroot -p
change master to master_host='主的ip', master_port=3306, master_user='repl', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=780;     
#mysql-bin.000002和780是从主里查的,show master status;命令start slave; #启动从库复制线程
show slave status\G; #查看状态
#主要检查两个参数:Slave_IO_Running和Slave_Sql_Running。这两个值为Yes,OK从库配置好了#接下来在 主数据库的操作都会同步到从数据库

-------注意---------注意-------注意-------------------
1.read_only=1只读模式,不会影响slave同步复制的功能,所以在MySQL slave库中设定了read_only=1后,通过 show slave status\G 命令查看salve状态,可以看到salve仍然会读取master上的日志,并且在slave库中应用日志,保证主从数据库同步一致;

2.read_only=1只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户的数据修改操作;在MySQL中设置read_only=1后,普通的应用用户进行insert、update、delete等会产生数据变化的DML操作时,都会报出数据库处于只读模式不能发生数据变化的错误,但具有super权限的用户,例如在本地或远程通过root用户登录到数据库,还是可以进行数据变化的DML操作;

使用root连接从库时,可以做增加,修改,删除操作, 这时操作了从库数据,就会导致主从不能同步了. 所以项目中不应该用root去连接从库,最好是不要告诉root密码,创建一个普通用户给只读的权限

还有需要注意 设置同步的库不应包括mysql这个库去做同步,因为这个库里有用户信息也会同步过去,这样root用户密码什么的都会同步

从库
cd /data/apps/mysql-5.7.24/
./bin/mysqladmin -uroot -p'root' password 'et123456'  修改root本地登录密码
grant all privileges on *.* to 'root'@'%' identified by 'et123456'; 增加root远程访问和密码
grant select on *.* to 'xinyun'@'%' identified by 'xinyun'; 增加普通用户xinyun 远程只读权限访问和密码
FLUSH PRIVILEGES;当从库数据不对时,把从库数据库删除,把主库导出来,然后导入从库里
主库root
show master status;
#show create database xinyun从库root
stop slave; 停止同步进程change master to master_host='192.168.1.52', master_port=3306, master_user='repl', master_password='123456', master_log_file='mysql-bin.000003', master_log_pos=457717; 重新设置同步的位置start slave; 启动同步进程
show slave status; 查看状态flush tables with read lock; 给所有的表加读锁的命令,super权限的用户也不能进行写修改操作
unlock tables; 解锁set global read_only=1; 设置只读模式,限定普通用户进行数据修改的操作,但不会限定具有super权限的用户的数据修改操作
set global read_only=0; 解除只读模式show global variables like "%read_only%";

主库完整配置
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It‘s a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.[client]
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET  NAMES utf8mb4'basedir = /data/apps/mysql-5.7.24
datadir = /data/datas/mysql/dataport = 3306server_id = 52
binlog-ignore-db = mysql,sys,information_schema,performance_schema
log-bin = mysql-binmax_binlog_size = 500M
binlog_cache_size = 2M
max_binlog_cache_size = 4M
expire_logs_days = 30max_connections = 500
max_connect_errors = 10000
table_open_cache = 256
long_query_time = 1
slow-query-log
slow_query_log_file = /data/datas/mysql/data/slow_query_log_file.log# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
从库完整配置
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It‘s a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.[client]
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET  NAMES utf8mb4'basedir = /data/apps/mysql-5.7.24
datadir = /data/datas/mysql/dataport = 3306
server_id = 53
read_only = 1log-bin = mysql-bin
max_binlog_size = 500M
binlog_cache_size = 2M
max_binlog_cache_size = 4M
expire_logs_days = 30max_connections = 500
max_connect_errors = 10000
table_open_cache = 256
long_query_time = 1
slow-query-log
slow_query_log_file = /data/datas/mysql/data/slow_query_log_file.logrelay_log = /data/datas/mysql/data/mysqld-relay-bin
relay_log-index = /data/datas/mysql/data/mysqld-relay-bin.index# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

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

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

相关文章

适配器模式【结构型模式C++】

1.概述 适配器模式是一种结构型设计模式, 又称为变压器模式、包装模式(Wrapper) 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 2.结构 Target:适配…

Leetcode算法训练日记 | day31

专题九 贪心算法 一、分发饼干 1.题目 Leetcode:第 455 题 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的…

MongoDB的使用场景

MongoDB的使用场景 MongoDB 是一个流行的文档型 NoSQL 数据库,适用于处理结构灵活、快速变化的数据以及需要高性能、高可用性和水平扩展能力的应用场景。以下是 MongoDB 的主要使用场景: Web & Mobile Applications: 实时数据处理:Mongo…

【算法一则】矩阵置零 【矩阵】【空间复用】

题目 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2: …

冰达ROS机器人快速使用指南

欢迎来到《冰达ROS机器人极简使用指南》 Q:这份教程适合谁? A:适合完全0基础新手,需要快速跑起来机器人的基本功能。也适合技术大佬需要快速的了解冰达ROS机器人的使用方法。 Q:这份教程内容很少,是不是…

c# 反射的应用

简述: 反射指程序可以访问、检测和修改它本身状态或行为的一种能力。 程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。 您可以使用使用反射获取类型,根据类型来动态创建对象&#…

机器学习基本流程

Jupyter Notebook 代码连接: machine_learning_demo machine_learning_ensembles Step 1: Imports and Configuration import pandas as pd import numpy as np import copy import json import pickle import joblib import lightgbm as lgb import optuna impor…

【24届数字IC秋招总结】正式批面试经验汇总8——豪威、大普微

文章目录 一、豪威-数字电路设计工程师1.1 面试问题二、大普微-数字验证工程师2.1 一面面试问题2.2 二面面试问题2.3 hr面试问题一、豪威-数字电路设计工程师 面试时间:9.6 1.1 面试问题 1、 logic能不能随机产生x和z,如何产生 2、 断言怎么写的,a为高b为高 3、 讲下项目…

数据结构——7.17.2 查找的基本概念、顺序查找和折半查找

7.1&7.2 查找的基本概念、顺序查找和折半查找 1. 基本概念 1. 关键字:数据元素中标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该是唯一的。2. 查找表的常见操作1. 查找符合条件的数据元素:查得快即可2. …

国产数据库实践:亚信安慧AntDB在DTC 2024展示创新实力

4月12至13日,我国数据库行业最具影响力的活动之一——第十三届『数据技术嘉年华』(DTC 2024) 在京成功举办,业内众多专家学者、技术领袖、各行业客户和实力厂商均到场参会。亚信安慧AntDB数据库总架构师洪建辉受邀参与“数据库一体化”专题论坛&#xff…

Stylus精讲:网页设计新境界【写作AI一键生成】

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

《HCIP-openEuler实验指导手册》1.1Apache安装与测试

一、安装httpd 查看软件仓库中apache版本列表 dnf provides http 安装apache dnf install -y httpd 二、启动http并测试 查看apache版本号 httpd -v 检查配置文件是否正确 httpd -t 启动并设置为开机启动 systemctl enable httpd --now 或 systemctl enable httpd syst…

Android--ConnectivityManager使用

一、前言 Android10之后官方废弃了通过WifiManager连接WIFI的方式,现在要使用ConnectivityManager连接WIFI 二、连接WIFI public class MainActivity extends AppCompatActivity {private static final String TAG"lkx";Overrideprotected void onCrea…

yolov8实战第七天——pyqt5-yolov8实现车牌识别系统(参考论文(约7000字)+环境配置+完整部署代码+代码使用说明+训练好的模型)

基于 pyqt5-yolov8实现车牌识别系统,包括图片车牌识别,视频车牌识别,视频流车牌识别。 效果展示(图片检测,检测到的内容添加到历史记录): 效果展示(视频检测,视频车辆只会添加一条记录,下文更多实际应用中的优化策略): 基于YOLOv8和PyQt5的车牌识别系统设计与…

day60 接雨水 柱状图中的最大矩形

题目1:42 接雨水 题目链接:42 接雨水 题意 n个宽度为1高度不一致的柱子排列,可以接多少雨水 找寻当前柱子的左面第一个比该柱子高的(栈顶的下一个元素),右面第一个比该柱子高的(当前遍历的元素),作差 得到宽度&…

CUDA_cudaFree_释放Stream_cudaError_t 错误类型码解释

官方网站 : CUDA Runtime API :: CUDA Toolkit Documentation cudaFree() 说明 cudaFree() 是 CUDA 中用于释放由 cudaMalloc() 或 cudaMallocManaged() 分配的设备内存的函数。它的参数是一个指向设备内存的指针,用于指示要释放的内存块的起始地址。…

在React项目中试用Tailwind

TailwindCSS TailwindCSS 是一个套 CSS 的工具类,把常用的功能都进行了定义,下面是一个官网的例子,可以看到Tailwind对一元页面素写了很多类,日常开发中只要定义一两个类就可以搞定类似的功能了。这里写了这么多 p-6 max-w-sm mx…

java导出数据到excel表中

java导出数据到excel表中 环境说明项目结构1.controller层2.service层3.实现层4.工具类:ExcelUtil.java5.ProductModel.java类 使用的Maven依赖postman请求展示,返回内容需要前端接收浏览器接收说明(如果下载下来的为zip类型,记得…

win docker clickhouse 挂载本地目录到容器后无法写入数据问题解决

win docker 部署clickhouse 挂载本地目录到容器后无法写入数据问题具体错误提示代码尝试在docker compose 文件中添加文件操作的许可进一步在docker compose 中配置 ulimits参数如下修改映射的本地目录到d盘最后使用docker的数据卷来映射到容器内部目录,解决了不能…

MySQL查询优化(学习)

1.在MySQL中,如何定位慢查询? MySQL自带慢日志 2.一个SQL语句执行很慢, 如何分析? 可以采用EXPLAIN 或者 DESC命令获取 MySQL 如何执行 SELECT 语句的信息 3.字段分析 idselect_typetablepartitionstype这条sql的连接的类型,性能有好到…