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

embedded/2025/1/20 0:26:23/

设备信息

操作系统版本架构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/embedded/155336.html

相关文章

vscode的字体图标库-icomoon

icomoon官网下载地址:SVG Icon Libraries and Custom Icon Font Organizer ❍ IcoMoon Easily mange your icons and integrate them in your projects. Browse free icons or import your own SVG icons to export as icon font, SVG, PNG, sprite and more.https:…

MyBatisPlus学习笔记

To be continue… 文章目录 介绍快速入门入门案例常用注解常用配置 核心功能条件构造器自定义SQLService接口 介绍 MyBatisPlus只做增强不做改变,引入它不会对现有工程产生影响。只需简单配置,即可快速进行单表CRUD操作,从而节省大量时间。…

windows 极速安装 Linux (Ubuntu)-- 无需虚拟机

1. 安装 WSL 和 Ubuntu 打开命令行,执行 WSL --install -d ubuntu若报错,则先执行 WSL --update2. 重启电脑 因安装了子系统,需重启电脑才生效 3. 配置 Ubuntu 的账号密码 打开 Ubuntu 的命令行 按提示,输入账号,密…

深入浅出 Go语言并发安全字典 sync.Map:原理、使用与优化

深入浅出 Go语言并发安全字典 sync.Map:原理、使用与优化 背景介绍 Go语言作为一种高效的并发编程语言,其标准库中提供了丰富的并发工具,如sync.WaitGroup、sync.Mutex等。然而,在实际开发中,我们经常需要在多个goroutine之间共享数据,这就涉及到并发安全的问题。传统的…

UDP报文格式

UDP是传输层的一个重要协议,他的特性有面向数据报、无连接、不可靠传输、全双工。 下面是UDP报文格式: 1,报头 UDP的报头长度位8个字节,包含源端口、目的端口、长度和校验和,其中每个属性均为两个字节。报头格式为二…

蓝桥杯2020年国赛C/C++C组第7题 重复字符串(思维与贪心)

解题思路:首先明确,若能将S变为一个K次字符串,那么它的长度应该是K的倍数,如果不是,那么就无法将S变为一个K次字符串,直接按题目要求输出-1即可,如果是,就开始遍历(S/K)长度的字符串…

分布式项目新选择:Dubbo搭建方案

在当今的数字化时代,构建高性能、可扩展的分布式系统已成为众多企业应对业务增长和技术挑战的关键。Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java RPC框架,为Java开发者提供了一套完善的分布式服务治理方案。本文将详细介绍如何使用Dub…

SSH config

背景 起因就是我发现大部分人对 SSH 只会基本的 ssh userip 的方式登录服务器,至多再会个配置免密,而对 SSH config 几乎不了解。事实上 SSH 可以灵活批量配置服务器信息,配置跳板等等。本文努力普及一些使用细节,希望有一天大家都…