行业知识
【MySQL5.7麒麟系统,ARM架构下离线安装,搭建主从集群】
2026-11-06 12:52:43
来源:互联网转载
MySQL5.7主从集群部署手册
一、检查本机操作系统
#一定要注意查看本机的操作系统,是amd(x86)还是arm(aarch)架构uname -a cat /etc/os-release
���意:MsSQL8.0开始才支持arm架构,我们可以去第三方下载编译好的安装包,或者可以采取docker安装
()二、配置基础环境
#关闭防火墙禁止开机自动启动systemctl stop firewalld.service && systemctl disable firewalld.service && service iptables stop#关闭SELINUXsed -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 mariadbrpm -e --nodeps mariadb-errmessage-10.3.9-9.p02.ky10.x86_64rpm -qa | grep mysqlrpm -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.oldln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6
1、修改配置文件
cd mysqlcp 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/mysqlexport PATH=$PATH:$MYSQL_HOME/bin
#刷新环境变量source /etc/profile
4、初始化启动MySQL
#无密码初始化登录 mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql_data#开启mysqlsystemctl 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;#退出mysqlexit 五、主从配置
一、环境准备
1、最少两台服务器,一主一从,两台主机上都安装好MySQL服务,/etc/my.cnf配置文件除了server-id不能一致,其他全部保持一致。
()2、两台服务器需要能够互相访问3306监听端口。
二、主库配置
1、修改主库配置文件
# 要给从机同步的库(如果不写,默认全部同步)#binlog-do-db=ganshuchang# 不给从机同步的库(多个写多行)binlog-ignore-db=mysqlbinlog-ignore-db=information_schemabinlog-ignore-db=performance_schemabinlog-ignore-db=performance_schemabinlog-ignore-db=sys# 启用二进制日志log-bin=master-bin# 服务器唯一ID,一般取IP最后一段server-id=1log_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 TOMASTER_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
上一篇:boyswillbe怎么读?