麒麟系统ARM架构下MySQL5.7离线安装,搭建主从集群
一、检查本机操作系统
#一定要注意查看本机的操作系统,是amd(x86)还是arm(aarch)架构
$ uname -a
Linux Server-58aa6d9e-9412-4ab6-b496-2adc0af4e9c8 4.19.90-17.5.ky10.aarch64 #1 SMP Fri Aug 7 13:35:33 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
$ cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"
注意:MsSQL8.0开始才支持arm架构,我们可以去第三方下载编译好的安装包,或者可以采取docker安装
二、配置基础环境
#关闭防火墙禁止开机自动启动
systemctl stop firewalld.service && systemctl disable firewalld.service && service iptables stop
#关闭SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
#创建mysql用户和组,mysql用户不能登录系统选项,不创建用户的主目录。
groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql
#卸载系统自带的依赖包,会存在冲突
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-errmessage-10.3.9-9.p02.ky10.x86_64
rpm -qa | grep mysql
rpm -e --nodeps 删除已经安装的MYSQL包
三、下载安装包
#前往官方地址下载adm(x86)包
https://downloads.mysql.com/archives/community/
#前往华为镜像站下载arm(aarch)包
https://obs.cn-north-4.myhuaweicloud.com/obs-mirror-ftp4/database/mysql-5.7.27-aarch64.tar.gz
四、上传至服务器并安装
注意:服务器需要自己挂盘,建议统一挂载到/data目录
#解压安装包提取文件内容到/data目录
tar -xvf mysql-5.7.27-aarch64.tar.gz -C /data/
#修改文件夹名字简洁点
cd /data
mv mysql-5.7.27-aarch64/ mysql/
#创建配置文件的软链接
ln -sf /data/mysql/my.cnf /etc/my.cnf
#创建数据目录
mkdir mysql_data mysql_tmp mysql_logs
#给目录授权
chown -R mysql:mysql /data/mysql /data/mysql_data /data/mysql_tmp /data/mysql_logs
#覆盖依赖包
cp -rf /data/mysql/extra/lib* /usr/lib64/
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.old
ln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6
1、修改配置文件
cd mysql
cp my.cnf my.cnf_bak #先备份
vim /etc/my.cnf #再修改
[client]
# 客户端连接 MySQL 服务器的端口号,通常是 3306。
port = 3306
# MySQL 服务器的套接字文件路径,用于本地连接。
socket = /dev/shm/mysql.sock
[mysqld]
# MySQL 服务器监听的端口号,通常也是 3306。
port = 3306
# MySQL 服务器的套接字文件路径,用于本地连接。
socket = /dev/shm/mysql.sock
# MySQL 的根目录路径,通常用于安装 MySQL 的根目录。
basedir = /data/mysql
# 存放数据库文件的目录路径。
datadir = /data/mysql_data
# 启用binglog日志文件,可以指定目录,如果不指定则放在数据目录下面
log_bin = mysql-bin
#存放 MySQL 进程 ID 的文件路径。
pid-file = /data/mysql_data/mysql.pid
#错误日志路径
log_error = /data/mysql_logs/mysql-error.log
#慢查询sql日志路径
slow_query_log_file = /data/mysql_logs/mysql-slow.log
#临时数据路径
tmpdir=/data/mysql_tmp
#MySQL 服务器运行时使用的用户(通常是 "mysql" 用户)
user = mysql
#用于指定 MySQL 服务器绑定的 IP 地址,0.0.0.0 表示绑定到所有可用的 IP 地址。
bind-address = 0.0.0.0
# MySQL 服务器的唯一标识符,用于主从复制等。
server-id = 1
# 连接到 MySQL 服务器时初始化 SQL 命令。
init-connect = 'SET NAMES utf8mb4'
# 服务器默认的字符集。
character-set-server = utf8mb4
#skip-name-resolve
#skip-networking
#允许在内核中等待的连接数量
back_log = 300
# 允许的最大并发连接数。
max_connections = 1000
# 最大连接错误数
max_connect_errors = 6000
# 打开的文件数限制。
open_files_limit = 65535
# 表缓存大小。
table_open_cache = 128
# 单个查询的最大允许数据包大小
max_allowed_packet = 4M
# 二进制日志缓存大小
binlog_cache_size = 1M
# 最大堆表大小
max_heap_table_size = 8M
# 临时表大小
tmp_table_size = 16M
# 读取缓冲区大小
read_buffer_size = 2M
# 随机读取缓冲区大小
read_rnd_buffer_size = 8M
# 排序缓冲区大小
sort_buffer_size = 8M
# 连接缓冲区大小
join_buffer_size = 8M
# 键缓冲区大小
key_buffer_size = 4M
# 线程缓存大小
thread_cache_size = 8
# 查询缓存类型 (1 表示启用)
query_cache_type = 1
# 查询缓存大小
query_cache_size = 8M
# 查询缓存限制
query_cache_limit = 2M
# 全文索引最小词长度
ft_min_word_len = 4
# 二进制日志文件的格式
binlog_format = mixed
# 二进制日志文件自动清理天数
expire_logs_days = 30
# 启用慢查询日志 (1 表示启用)
slow_query_log = 1
# 定义慢查询的阈值时间
long_query_time = 1
# 性能模式 (0 表示禁用)
performance_schema = 0
# 明确指定 MySQL 是否应该使用严格的模式来检查日期和时间值
explicit_defaults_for_timestamp
# 表名大小写不敏感 (1 表示启用)
lower_case_table_names = 1
# 禁用外部锁定,用于控制表级锁定
skip-external-locking
# 默认存储引擎 (InnoDB)
default_storage_engine = InnoDB
# 默认存储引擎 (MyISAM)
#default-storage-engine = MyISAM
# 每个表使用单独的 InnoDB 文件
innodb_file_per_table = 1
# InnoDB 可以打开的最大文件数
innodb_open_files = 500
# InnoDB 缓冲池大小
innodb_buffer_pool_size = 64M
# InnoDB 写 I/O 线程数
innodb_write_io_threads = 4
# InnoDB 读 I/O 线程数
innodb_read_io_threads = 4
# InnoDB 线程并发度
innodb_thread_concurrency = 0
# InnoDB 清理线程数
innodb_purge_threads = 1
# InnoDB 日志刷新行为
innodb_flush_log_at_trx_commit = 2
# InnoDB 日志缓冲大小
innodb_log_buffer_size = 2M
# InnoDB 日志文件大小
innodb_log_file_size = 32M
# InnoDB 日志文件组数
innodb_log_files_in_group = 3
# InnoDB 最大脏页百分比
innodb_max_dirty_pages_pct = 90
# InnoDB 锁等待超时时间
innodb_lock_wait_timeout = 120
# 批量插入缓冲区大小
bulk_insert_buffer_size = 8M
# MyISAM 排序缓冲区大小
myisam_sort_buffer_size = 8M
# MyISAM 最大排序文件大小
myisam_max_sort_file_size = 10G
# MyISAM 修复线程数
myisam_repair_threads = 1
# 交互超时时间
interactive_timeout = 28800
# 等待超时时间
wait_timeout = 28800
[mysqldump]
quick
# mysqldump 最大允许数据包大小
max_allowed_packet = 100M
[myisamchk]
# MyISAM 检查工具的键缓冲区大小
key_buffer_size = 8M
# MyISAM 检查工具的排序缓冲区大小
sort_buffer_size = 8M
# 读缓存大小
read_buffer = 4M
# 写缓存大小
write_buffer = 4M
2、设置开机自动启动
# 设置系统引导时自动启动 MySQL 服务。
cp -rf /data/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
systemctl enable mysqld
3、添加环境变量
vim /etc/profile
# 在尾部添加
export MYSQL_HOME=/data/mysql
export PATH=$PATH:$MYSQL_HOME/bin
#刷新环境变量
source /etc/profile
4、初始化启动MySQL
#无密码初始化登录
mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql_data
#开启mysql
systemctl start mysqld
#查看状态
systemctl status mysqld
5、修改MySQL密码,并允许远程连接
#先免密登录
mysql -u root
#使用mysql库
use mysql;
#更新root密码
update user set authentication_string=password("你的密码") where user="root";
#赋予所有IP都可以使用root用户远程连接的权限
grant all privileges on *.* to root@'%' identified by "你的密码";
#刷新权限配置
flush privileges;
#退出mysql
exit
五、主从配置
一、环境准备
- 最少两台服务器,一主一从,两台主机上都安装好MySQL服务,/etc/my.cnf配置文件除了server-id不能一致,其他全部保持一致。
- 两台服务器需要能够互相访问3306监听端口。
二、主库配置
1、修改主库配置文件
# 要给从机同步的库(如果不写,默认全部同步)
#binlog-do-db=ganshuchang
# 不给从机同步的库(多个写多行)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 启用二进制日志
log-bin=master-bin
# 服务器唯一ID,一般取IP最后一段
server-id=1
log_bin_index = home/mysql/binlog/mysql-bin.index
2、增加同步用户
#创建同步用户
create user 'repl'@'%' identified by 'repl';
#赋予同步权限
grant replication slave on *.* to 'repl'@'%';
3、重启服务
service mysqld restart
4、查看binglog文件
注意这里的File,和Position,下面主从从库配置会用到
show master status\G;
三、从库配置
1、修改从库配置文件
server-id = 2
# 加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错
#设置从库只读状态,避免在从库上写操作,但该指令对超级管理员是无效的,mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作。但是super_read_only这个参数大部分都是关闭掉的
read_only = 1
#指定了主服务器的信息应该存储在特殊的表中。
master_info_repository=TABLE
#指定中继日志(Relay Log)的信息存储在一个特殊的表中
relay_log_info_repository=TABLE
#这是中继日志的名称
relay-log = slave-relay-bin
2、重启服务
service mysqld restart
3、配置主从信息
CHANGE MASTER TO
MASTER_HOST = 'master_ip', -- 主服务器的 IP 地址
MASTER_USER = 'replication',
MASTER_PASSWORD = 'password',
MASTER_LOG_FILE = 'mysql-bin.000001', -- 主服务器的二进制日志文件名(show master status\G中的file)
MASTER_LOG_POS = 123; -- 主服务器的二进制日志位置(show master status\G中的filePosition)
4、启动复制
START SLAVE;
5、检查复制状态
#确保 Slave_IO_Running 和 Slave_SQL_Running 都显示为 "Yes",表示复制正常运行。
#如果Slave_IO_Running: Connecting,请检查:从库是否能远程登录repl用户,如果不能,检查配置文件是否限制,防火墙是否关闭
SHOW SLAVE STATUS\G;
六、常用导库语句
#执行sql文件
mysql -uroot -p -D database_name > file.sql
#导出整个数据库
mysqldump -u username -p database_name > dumpfile.sql
#导出单个表
mysqldump -u username -p database_name table_name > table_dump.sql
原文地址:https://blog.csdn.net/supermanAjxs/article/details/134291425
麒麟系统ARM架构下MySQL5.7离线安装,搭建主从集群的更多相关文章
- Arm架构下VUE环境的安装
最近因为项目需要在arm环境下搭建vue环境,网上有基于Linux的 教程,路径略有不同,现整理如下 1.安装文件下载 1.下载地址:http://nodejs.cn/download/ 2.选择一个 ...
- linux运维、架构之路-Kubernetes离线、二进制部署集群
一.Kubernetes对应Docker的版本支持列表 Kubernetes 1.9 <--Docker 1.11.2 to 1.13.1 and 17.03.x Kubernetes 1.8 ...
- 离线环境下使用二进制方式安装配置Kubernetes集群
本文环境 Redhat Linux 7.3,操作系统采用的最小安装方式. Kubernetes的版本为 V1.10. Docker版本为18.03.1-ce. etcd 版本为 V3.3.8. 1. ...
- 架构(三)MongoDB安装配置以及集群搭建
一 安装 1.1 下载MongoDB 我个人不太喜欢用wget url, 之前出现过wget下载的包有问题的情况 https://fastdl.mongodb.org/linux/mongodb-li ...
- ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?
为什么需要ARM架构下的OpenJDK8的Docker镜像? 对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行(或者其他ARM架构电脑 ...
- 代码 or 指令,浅析ARM架构下的函数的调用过程
摘要:linux程序运行的状态以及如何推导调用栈. 1.背景知识 1.ARM64寄存器介绍: 2.STP指令详解(ARMV8手册): 我们先看一下指令格式(64bit),以及指令对于寄存机执行结果的影 ...
- centos7下mysql5.7的安装与配置
centos7下MySQL5.7的安装与配置 下载 下载地址 根据系统和版本选择红框中的四个RPM包下载即可,然后放到centos7系统中的/opt目录下,等待稍后安装. 安装前的准备 1. 检查系统 ...
- Centos7.3下mysql5.7.18安装并修改初始密码的方法
Centos7.3下mysql5.7.18安装并修改初始密码的方法 原文链接:http://www.jb51.net/article/116032.htm 作者:Javen205 字体:[增加 减小] ...
- linux系统centOS7下搭建redis集群中ruby版本过低问题的解决方法
问题描述: 在Centos7中,通过yum安装ruby的版本是2.0.0,但是如果有些应用需要高版本的ruby环境,比如2.2,2.3,2.4... 那就有点麻烦了,譬如:我准备使用redis官方给的 ...
- 布式实时日志系统(三) 环境搭建之centos 6.4下hadoop 2.5.2完全分布式集群搭建最全资料
最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...
随机推荐
- Netty(三)Netty模型
1. Netty模型 Netty主要基于主从Reactor多线程模型做了一定的改进,其中主从Reactor多线程模型有多个Reactor. 简版图: 说明: BossGroup线程维护Selector ...
- Xilinux PS与PL交互:裸机程序读写FPGA-REG
背景 当时在搞ZYNQ驱动的时候,出于TDD的思想,从最简单的功能开始验证.因此就涉及到了下面的需求. PL侧会提供寄存器地址供PS端读写,这部分的寄存器在PL侧作为Avalon的IP,对PS端来说, ...
- UART和RS232、RS485的关系是什么?
串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式.但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句 ...
- 一个难忘的json反序列化问题
前言 最近我在做知识星球中的商品秒杀系统,昨天遇到了一个诡异的json反序列化问题,感觉挺有意思的,现在拿出来跟大家一起分享一下,希望对你会有所帮助. 案发现场 我最近在做知识星球中的商品秒杀系统,写 ...
- JS --函数进阶 --手稿
- Python获得操作日志的最后几行记录
该方法一般用于获得操作日志的最后几行记录 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 f = open('seek.txt', 'rb') 4 ...
- 动手学深度学习——CNN应用demo
CNN应用demo CNN实现简单的手写数字识别 import torch import torch.nn.functional as F from torchvision import datase ...
- 统计里面PV 和 UV代表什么意思
1.网站流量bai统计中"PV"它所代表的意思是访问量了,具体指的du就是网站zhi的页面点击量或是浏览量,亦或是页面的刷新量dao了,网站的页面每刷新一次,就统计一个" ...
- [oeasy]python0106 七段数码管_显示字母_BP机
七位数码管进化 回忆上次内容 上次回顾了 7-seg 七位数码管 可以显示数字 甚至是十六进制数字 添加图片注释,不超过 140 字(可选) 能否让 七位数码管 将26个字母 全部都显 ...
- [oeasy]python0082_VT100_演化_颜色设置_VT选项_基础色_高亮色_索引色_RGB总结
更多颜色 回忆上次内容 上次 了解了控制序列 背后的故事 一切标准 都是 从无到有 的 就连 负责标准的组织 也是 从无到有 的 VT-05 奠定了 基础颜色 黑底 绿字 隔行 扫描 但 多颜色设置 ...