统信V20 1070e X86系统编译安装mysql-5.7.44版本以及主从构建

news/2025/1/21 20:56:29/

设备信息

操作系统版本架构CPU内存备注
统信UOS V20 1070eX864C8G此配置仅做编译安装验证,持续运行或数据量增长大请自行评估资源配置。
统信UOS V20 1070eX864C8G

资源包

该包包含mysql-5.7.44源码包、boost资源包、统信编译mysql-5.7.44安装包

通过网盘分享的文件:统信mysql-5.7.44-x86.zip
链接: https://pan.baidu.com/s/15UakIugfVeZq407qUVwjFg?pwd=pb14 提取码: pb14

编译过程

#编译过程
[root@uos1 ~]# yum groupinstall 'Development Tools' -y[root@uos1 ~]# yum install -y cmake ncurses-devel openssl-devel boost-devel libtirpc libtirpc-devel rpcgen[root@uos1 ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz[root@uos1 ~]# tar -xzvf mysql-5.7.44.tar.gz[root@uos1 ~]# tar -xf boost_1_59_0.tar.gz -C /usr/local/[root@uos1 ~]# cd mysql-5.7.44
[root@uos1 mysql-5.7.44]# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc/mysql \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=/usr/local/boost_1_59_0/  #指定上面解压的1路径[root@uos1 mysql-5.7.44]# make && make install [root@uos1 mysql-5.7.44]# cd /usr/local/mysql[root@uos1 mysql]# vim my.cnf
#新增一个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 = /usr/local/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
#设置默认时区
default_time_zone = '+08:00'
#设置日志默认时区
log_timestamps = SYSTEM
#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 = 5000
# 最大连接错误数
max_connect_errors = 1000
# 打开的文件数限制。
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
# 单个binlog最大大小
max_binlog_size =1G
# 启用慢查询日志 (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
# 交互超时时间
interactive_timeout = 28800
# 等待超时时间
wait_timeout = 28800
[mysqldump]
quick
# mysqldump 最大允许数据包大小
max_allowed_packet = 100M[root@uos1 local]# tar -czvf mysql-5.7.44-x86-0118.tgz mysql/

安装过程

#安装过程
[root@uos1 ~]# tar -xf mysql-5.7.44-x86-0118.tgz -C /usr/local/
[root@uos1 ~]# groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql
[root@uos1 ~]# mkdir /data/mysql_data /data/mysql_tmp /data/mysql_logs
[root@uos1 ~]# chown -R mysql:mysql  /data/mysql_data /data/mysql_tmp  /data/mysql_logs[root@uos1 ~]# vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
[root@uos1 ~]# source /etc/profile[root@uos1 ~]# cd /usr/local/mysql
[root@uos1 mysql]# bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data[root@uos1 mysql]# yum install -y libatomic   #若提示有包缺失需要安装
[root@uos1 mysql]# cp support-files/mysql.server /etc/init.d/mysql[root@uos1 mysql]# systemctl enable mysql  或者 chkconfig --add mysql 
[root@uos1 mysql]# systemctl start mysql  或者 service mysql start
[root@uos1 mysql]# mysql -uroot 
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> update user set authentication_string=password("admin@2020") where user="root";
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1mysql> grant all privileges  on *.* to root@'%' identified by "admin@2020";
Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)[root@uos1 mysql]# ss -lntup | grep 3306
tcp   LISTEN 0      300          0.0.0.0:3306       0.0.0.0:*    users:(("mysqld",pid=8437,fd=26))     
[root@uos1 mysql]# ps -ef | grep mysql
root        7575       1  0 13:10 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql_data --pid-file=/data/mysql_data/mysql.pid
mysql       8437    7575  0 13:10 ?        00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql_data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql_logs/mysql-error.log --open-files-limit=65535 --pid-file=/data/mysql_data/mysql.pid --socket=/dev/shm/mysql.sock --port=3306
root        8484    6847  0 13:11 pts/0    00:00:00 grep --color=auto mysql

主从复制构建

#登入主mysql
mysql -uroot -p
mysql> create user 'repl_conn'@'%' identified with mysql_native_password by 'repl_conn@2020';
mysql> grant replication slave on *.* to 'repl_conn'@'%';
mysql> flush privileges;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000005 |     1591 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)#从mysql
[root@localhost mysql]# vim /usr/local/mysql/my.cnf   #此方式部署的配置文件默认位于MYSQL_HOME --- /usr/local/mysql/my.cnf
server-id = 2   #修改为和主mysql的server-id不一致,
[root@localhost mysql]# systemctl restart mysql
[root@uos2 mysql]# mysql -uroot -p
mysql> change master to master_host='192.168.2.156',master_user='repl_conn',master_password='repl_conn@2020',master_log_file='mysql-bin.000005',master_log_pos=1591;
mysql> start slave;
mysql> show slave status\G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.2.156Master_User: repl_connMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000005Read_Master_Log_Pos: 1591Relay_Log_File: uos2-relay-bin.000002Relay_Log_Pos: 320Relay_Master_Log_File: mysql-bin.000005Slave_IO_Running: YesSlave_SQL_Running: Yes......

http://www.ppmy.cn/news/1565039.html

相关文章

客户端/服务端 负载均衡

在分布式系统中,负载均衡是确保系统高可用性、提高系统吞吐量和响应时间的一种关键技术手段。负载均衡可以分为 客户端负载均衡 和 服务端负载均衡,它们各自有不同的实现方式,适用于不同的应用场景。 1. 客户端负载均衡(Client-S…

Node.js NativeAddon 构建工具:node-gyp 安装与配置完全指南

Node.js NativeAddon 构建工具:node-gyp 安装与配置完全指南 node-gyp Node.js native addon build tool [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/no/node-gyp 项目基础介绍及主要编程语言 Node.js NativeAddon 构建工具(node-gyp…

Learning Prompt

说明:这是我的学习笔记,很多内容转自网络,请查阅文章末尾的参考资料。 目录 基本要求(C.R.E.A.T.E)总结文章(Summarise)改写文章(Rewrite)根据参考资料回答问题(Question & Answer)参考资料 基本要求(C.R.E.A.T.E) Character This is th…

[实战]Ubuntu使用工具和命令无法ssh,但使用另一台Ubuntu机器可以用命令ssh,非root用户。

现象 新安装一台Ubuntu 22.04服务器,各种远程工具都无法SSH,但使用公司的另一台Ubuntu 22.04的机器可以正常SSH。并且我使用的是非root用户。 百度、谷哥上能试的方案全试了一遍,使用命令ssh仍然提示 permission denied please try again。…

vue3 跨级传递数据

假设我们我们有3层组件 顶层,中间层,底层 如果我们的顶层想给底层传递数据 常规的我们可以用父传子的方式props,顶层传递给中间层,中间层再传给底层,如果中间有很多层,那不炸杠了吗 所以接下来要用vue3推…

中等难度——python实现电子宠物和截图工具

import io # 文件处理 import nt # windows nt 库直接获取对应的磁盘空间 import time # 时间 import zlib # 加解密 import ctypes # 调用 import struct # 处理字节二进制 import base64 # 编解码 import threading # 线程 import tkinter as tk # tk from datetime…

Kotlin基础知识学习(三)

函数使用 基本用法 函数声明变化 如果函数是公开的,则public关键字可以省略。用fun关键字表示函数的定义。如果函数没有返回值可以不用声明。如果函数表示重载,直接在fun同一行用override修饰。函数参数格式是变量名:变量类型。函数参数允…

类和对象(3)——继承:extends关键字、super关键字、protected关键字、final关键字

目录 1. 继承 1.1 继承的概念 1.2 extends关键字 1.3 继承方式 2.继承类的成员访问 2.1 成员变量 2.2 成员方法 3. super关键字 4. super、this 与 构造方法 4.1 子类中的super()调用 4.1.1 父类只有无参构造方法 4.1.2 父类有带参构造方法时 4.2 super 与 this 的…