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

设备信息

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

资源包

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

通过网盘分享的文件:统信mysql-5.7.44-x86.zip

链接: https://pan.baidu.com/s/15UakIugfVeZq407qUVwjFg?pwd=pb14 提取码: pb14

编译过程

bash 复制代码
#编译过程
[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/

安装过程

bash 复制代码
#安装过程
[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 -A

Database 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: 1

mysql> 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

主从复制构建

sql 复制代码
#登入主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 event
                  Master_Host: 192.168.2.156
                  Master_User: repl_conn
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000005
          Read_Master_Log_Pos: 1591
               Relay_Log_File: uos2-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000005
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
            ......
相关推荐
寻道码路1 天前
大模型工程化实战(十六):政企国产化避坑——合规/信创名录/私有化运维/国产硬件适配/原厂支持这五道关怎么过
大模型·agent·信创·rag·ai工程化·国产化替代·政企ai落地
豆豆3 天前
政企网站改版选型:从等保测评指标倒推CMS能力清单
信创·国产化·等级保护·网站改版·网站改造·政企信息化·cms选型
数据库小学妹9 天前
数据迁移怎么做才不返工?六步闭环与兼容性分层验收方法
信创·数据迁移·国产数据库·数据库迁移·数据校验
技术拾荒的人儿17 天前
信创环境部署问卷系统,2026这五款工具的私有化支持情况
私有化部署·信创·系统运维·问卷系统·内网部署
Linux技术支持工程师21 天前
银河麒麟 V10 出问题了该看哪个日志?secure 找不到、journalctl 查不到历史,一次解决
信创·银河麒麟·journalctl·日志排查·国产化运维
DolphinDB22 天前
持续升级!DolphinDB 全面完成银河麒麟 V11 兼容性认证
时序数据库·信创·银河麒麟·dolphindb
企业通信技术笔记22 天前
信创环境下企业即时通讯IM怎么部署?5类方案的架构与适配思路
架构·私有化部署·信息与通信·信创·企业即时通讯
羌俊恩22 天前
信创数据库之华为Gaussdb 概览
信创·gaussdb·国产化·数据库改造评估·gtm-lite
fo安方1 个月前
项目管理—高级集成项目管理师–认证考试–案例分析
项目管理·信创
武汉唯众智创1 个月前
云计算实训室建设实战指南(2026版):从课程体系到信创落地的完整路线
云计算·信创·云计算实训室·产教融合·职业教育·云计算教学平台·实训室建设