0


【MySQL5.7麒麟系统,ARM架构下离线安装,搭建主从集群】

MySQL5.7主从集群部署手册

一、检查本机操作系统

  1. #一定要注意查看本机的操作系统,是amd(x86)还是arm(aarch)架构uname-acat /etc/os-release

注意:MsSQL8.0开始才支持arm架构,我们可以去第三方下载编译好的安装包,或者可以采取docker安装

二、配置基础环境

  1. #关闭防火墙禁止开机自动启动
  2. systemctl stop firewalld.service && systemctl disable firewalld.service && service iptables stop
  3. #关闭SELINUX
  4. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/sysconfig/selinux
  5. #创建mysql用户和组,mysql用户不能登录系统选项,不创建用户的主目录。
  6. groupadd -r mysql && useradd -r-g mysql -s/sbin/nologin-M mysql
  7. #卸载系统自带的依赖包,会存在冲突
  8. rpm -qa | grep mariadb
  9. rpm -e--nodeps mariadb-errmessage-10.3.9-9.p02.ky10.x86_64
  10. rpm -qa | grep mysql
  11. rpm -e--nodeps 删除已经安装的MYSQL

三、下载安装包

  1. #前往官方地址下载adm(x86)包
  2. https://downloads.mysql.com/archives/community/#前往华为镜像站下载arm(aarch)包
  3. https://obs.cn-north-4.myhuaweicloud.com/obs-mirror-ftp4/database/mysql-5.7.27-aarch64.tar.gz

四、上传至服务器并安装

注意:信息中心的服务器需要自己挂盘,建议统一挂载到/data目录

  1. #解压安装包提取文件内容到/data目录
  2. tar -xvf mysql-5.7.27-aarch64.tar.gz -C/data/#修改文件夹名字简洁点
  3. cd /data
  4. mv mysql-5.7.27-aarch64/ mysql/#创建配置文件的软链接
  5. ln -sf /data/mysql/my.cnf /etc/my.cnf
  6. #创建数据目录
  7. mkdir mysql_data mysql_tmp mysql_logs
  8. #给目录授权
  9. chown -R mysql:mysql /data/mysql /data/mysql_data /data/mysql_tmp /data/mysql_logs
  10. #覆盖依赖包
  11. cp -rf /data/mysql/extra/lib*/usr/lib64/
  12. mv /usr/lib64/libstdc++.so.6/usr/lib64/libstdc++.so.6.old
  13. ln -s/usr/lib64/libstdc++.so.6.0.24/usr/lib64/libstdc++.so.6

1、修改配置文件

  1. cd mysql
  2. cp my.cnf my.cnf_bak #先备份vim /etc/my.cnf #再修改
  1. [client]
  2. # 客户端连接 MySQL 服务器的端口号,通常是 3306。
  3. port = 3306
  4. # MySQL 服务器的套接字文件路径,用于本地连接。
  5. socket = /dev/shm/mysql.sock
  6. [mysqld]
  7. # MySQL 服务器监听的端口号,通常也是 3306。
  8. port = 3306
  9. # MySQL 服务器的套接字文件路径,用于本地连接。
  10. socket = /dev/shm/mysql.sock
  11. # MySQL 的根目录路径,通常用于安装 MySQL 的根目录。
  12. basedir = /data/mysql
  13. # 存放数据库文件的目录路径。
  14. datadir = /data/mysql_data
  15. # 启用binglog日志文件,可以指定目录,如果不指定则放在数据目录下面
  16. log_bin = mysql-bin
  17. #存放 MySQL 进程 ID 的文件路径。
  18. pid-file = /data/mysql_data/mysql.pid
  19. #错误日志路径
  20. log_error = /data/mysql_logs/mysql-error.log
  21. #慢查询sql日志路径
  22. slow_query_log_file = /data/mysql_logs/mysql-slow.log
  23. #临时数据路径
  24. tmpdir=/data/mysql_tmp
  25. #MySQL 服务器运行时使用的用户(通常是 "mysql" 用户)
  26. user = mysql
  27. #用于指定 MySQL 服务器绑定的 IP 地址,0.0.0.0 表示绑定到所有可用的 IP 地址。
  28. bind-address = 0.0.0.0
  29. # MySQL 服务器的唯一标识符,用于主从复制等。
  30. server-id = 1
  31. # 连接到 MySQL 服务器时初始化 SQL 命令。
  32. init-connect = 'SET NAMES utf8mb4'
  33. # 服务器默认的字符集。
  34. character-set-server = utf8mb4
  35. #skip-name-resolve
  36. #skip-networking
  37. #允许在内核中等待的连接数量
  38. back_log = 300
  39. # 允许的最大并发连接数。
  40. max_connections = 1000
  41. # 最大连接错误数
  42. max_connect_errors = 6000
  43. # 打开的文件数限制。
  44. open_files_limit = 65535
  45. # 表缓存大小。
  46. table_open_cache = 128
  47. # 单个查询的最大允许数据包大小
  48. max_allowed_packet = 4M
  49. # 二进制日志缓存大小
  50. binlog_cache_size = 1M
  51. # 最大堆表大小
  52. max_heap_table_size = 8M
  53. # 临时表大小
  54. tmp_table_size = 16M
  55. # 读取缓冲区大小
  56. read_buffer_size = 2M
  57. # 随机读取缓冲区大小
  58. read_rnd_buffer_size = 8M
  59. # 排序缓冲区大小
  60. sort_buffer_size = 8M
  61. # 连接缓冲区大小
  62. join_buffer_size = 8M
  63. # 键缓冲区大小
  64. key_buffer_size = 4M
  65. # 线程缓存大小
  66. thread_cache_size = 8
  67. # 查询缓存类型 (1 表示启用)
  68. query_cache_type = 1
  69. # 查询缓存大小
  70. query_cache_size = 8M
  71. # 查询缓存限制
  72. query_cache_limit = 2M
  73. # 全文索引最小词长度
  74. ft_min_word_len = 4
  75. # 二进制日志文件的格式
  76. binlog_format = mixed
  77. # 二进制日志文件自动清理天数
  78. expire_logs_days = 30
  79. # 启用慢查询日志 (1 表示启用)
  80. slow_query_log = 1
  81. # 定义慢查询的阈值时间
  82. long_query_time = 1
  83. # 性能模式 (0 表示禁用)
  84. performance_schema = 0
  85. # 明确指定 MySQL 是否应该使用严格的模式来检查日期和时间值
  86. explicit_defaults_for_timestamp
  87. # 表名大小写不敏感 (1 表示启用)
  88. lower_case_table_names = 1
  89. # 禁用外部锁定,用于控制表级锁定
  90. skip-external-locking
  91. # 默认存储引擎 (InnoDB)
  92. default_storage_engine = InnoDB
  93. # 默认存储引擎 (MyISAM)
  94. #default-storage-engine = MyISAM
  95. # 每个表使用单独的 InnoDB 文件
  96. innodb_file_per_table = 1
  97. # InnoDB 可以打开的最大文件数
  98. innodb_open_files = 500
  99. # InnoDB 缓冲池大小
  100. innodb_buffer_pool_size = 64M
  101. # InnoDB 写 I/O 线程数
  102. innodb_write_io_threads = 4
  103. # InnoDB 读 I/O 线程数
  104. innodb_read_io_threads = 4
  105. # InnoDB 线程并发度
  106. innodb_thread_concurrency = 0
  107. # InnoDB 清理线程数
  108. innodb_purge_threads = 1
  109. # InnoDB 日志刷新行为
  110. innodb_flush_log_at_trx_commit = 2
  111. # InnoDB 日志缓冲大小
  112. innodb_log_buffer_size = 2M
  113. # InnoDB 日志文件大小
  114. innodb_log_file_size = 32M
  115. # InnoDB 日志文件组数
  116. innodb_log_files_in_group = 3
  117. # InnoDB 最大脏页百分比
  118. innodb_max_dirty_pages_pct = 90
  119. # InnoDB 锁等待超时时间
  120. innodb_lock_wait_timeout = 120
  121. # 批量插入缓冲区大小
  122. bulk_insert_buffer_size = 8M
  123. # MyISAM 排序缓冲区大小
  124. myisam_sort_buffer_size = 8M
  125. # MyISAM 最大排序文件大小
  126. myisam_max_sort_file_size = 10G
  127. # MyISAM 修复线程数
  128. myisam_repair_threads = 1
  129. # 交互超时时间
  130. interactive_timeout = 28800
  131. # 等待超时时间
  132. wait_timeout = 28800
  133. [mysqldump]
  134. quick
  135. # mysqldump 最大允许数据包大小
  136. max_allowed_packet = 100M
  137. [myisamchk]
  138. # MyISAM 检查工具的键缓冲区大小
  139. key_buffer_size = 8M
  140. # MyISAM 检查工具的排序缓冲区大小
  141. sort_buffer_size = 8M
  142. # 读缓存大小
  143. read_buffer = 4M
  144. # 写缓存大小
  145. write_buffer = 4M

2、设置开机自动启动

  1. # 设置系统引导时自动启动 MySQL 服务。cp-rf /data/mysql/support-files/mysql.server /etc/init.d/mysqld
  2. chmod +x /etc/init.d/mysqld
  3. systemctl enable mysqld

3、添加环境变量

  1. vim /etc/profile
  1. # 在尾部添加exportMYSQL_HOME=/data/mysql
  2. exportPATH=$PATH:$MYSQL_HOME/bin
  1. #刷新环境变量source /etc/profile

4、初始化启动MySQL

  1. #无密码初始化登录
  2. mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql_data
  3. #开启mysql
  4. systemctl start mysqld
  5. #查看状态
  6. systemctl status mysqld

5、修改MySQL密码,并允许远程连接

  1. #先免密登录
  2. mysql -u root
  3. #使用mysql库
  4. use mysql;
  5. #更新root密码
  6. update user set authentication_string=password("你的密码") where user="root";
  7. #赋予所有IP都可以使用root用户远程连接的权限
  8. grant all privileges on *.* to root@'%' identified by "你的密码";
  9. #刷新权限配置
  10. flush privileges;
  11. #退出mysql
  12. exit

五、主从配置

一、环境准备

1、最少两台服务器,一主一从,两台主机上都安装好MySQL服务,/etc/my.cnf配置文件除了server-id不能一致,其他全部保持一致。

2、两台服务器需要能够互相访问3306监听端口。

二、主库配置

1、修改主库配置文件
  1. # 要给从机同步的库(如果不写,默认全部同步)
  2. #binlog-do-db=ganshuchang
  3. # 不给从机同步的库(多个写多行)
  4. binlog-ignore-db=mysql
  5. binlog-ignore-db=information_schema
  6. binlog-ignore-db=performance_schema
  7. binlog-ignore-db=performance_schema
  8. binlog-ignore-db=sys
  9. # 启用二进制日志
  10. log-bin=master-bin
  11. # 服务器唯一ID,一般取IP最后一段
  12. server-id=1
  13. log_bin_index = home/mysql/binlog/mysql-bin.index
2、增加同步用户
  1. #创建同步用户
  2. create user 'repl'@'%' identified by 'repl';
  3. #赋予同步权限
  4. grant replication slave on *.* to 'repl'@'%';
3、重启服务
  1. service mysqld restart
4、查看binglog文件
  1. #注意这里的File,和Position,下面主从从库配置会用到
  2. show master status\G;

三、从库配置

1、修改从库配置文件
  1. server-id = 2
  2. # 加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错
  3. #设置从库只读状态,避免在从库上写操作,但该指令对超级管理员是无效的,mysql5.7增加了一个新的参数super_read_only,该参数使得超级管理员也无法进行写操作。但是super_read_only这个参数大部分都是关闭掉的
  4. read_only = 1
  5. #指定了主服务器的信息应该存储在特殊的表中。
  6. master_info_repository=TABLE
  7. #指定中继日志(Relay Log)的信息存储在一个特殊的表中
  8. relay_log_info_repository=TABLE
  9. #这是中继日志的名称
  10. relay-log = slave-relay-bin
2、重启服务
  1. service mysqld restart
3、配置主从信息
  1. CHANGE MASTER TO
  2. MASTER_HOST = 'master_ip', -- 主服务器的 IP 地址
  3. MASTER_USER = 'replication',
  4. MASTER_PASSWORD = 'password',
  5. MASTER_LOG_FILE = 'mysql-bin.000001', -- 主服务器的二进制日志文件名(show master status\G中的file
  6. MASTER_LOG_POS = 123; -- 主服务器的二进制日志位置(show master status\G中的filePosition
4、启动复制
  1. START SLAVE;
5、检查复制状态
  1. #确保 Slave_IO_Running 和 Slave_SQL_Running 都显示为 "Yes",表示复制正常运行。
  2. #如果Slave_IO_Running: Connecting,请检查:从库是否能远程登录repl用户,如果不能,检查配置文件是否限制,防火墙是否关闭
  3. SHOW SLAVE STATUS\G;

六、常用导库语句

  1. #执行sql文件
  2. mysql -uroot -p -D database_name > file.sql
  3. #导出整个数据库
  4. mysqldump -u username -p database_name > dumpfile.sql
  5. #导出单个表
  6. mysqldump -u username -p database_name table_name > table_dump.sql
标签: mysql arm

本文转载自: https://blog.csdn.net/supermanAjxs/article/details/134291425
版权归原作者 淦述昌 所有, 如有侵权,请联系我们删除。

“【MySQL5.7麒麟系统,ARM架构下离线安装,搭建主从集群】”的评论:

还没有评论