统信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
            ......
相关推荐
JAVA坚守者14 小时前
MySQL 启动报错 “The server quit without updating PID file“ 的全面解决方案(适用于 5.7/8.0 全版本)
mysql5.7·mysql8.0·mysql 故障排查·数据库启动错误·pid 文件异常·innodb 修复·selinux 问题
wqqqianqian8 天前
国产linux系统(银河麒麟,统信uos)使用 PageOffice实现word 文档中的table插入新行并赋值
word·信创·国产·pageoffice·table表格·
识途老码14 天前
UOS 20 Pro为国际版WPS设置中文菜单
信创·wps·uos·国产操作系统·统信
识途老码14 天前
UOS无法安装deb软件包
信创·uos·国产操作系统·统信操作系统
wqqqianqian16 天前
国产linux系统(银河麒麟,统信uos)使用 PageOffice在线编辑word文件保存数据同时保存文件
linux·word·信创·国产·保存·pageoffice·在线编辑
志凌海纳SmartX24 天前
高端制造行业 VMware 替代案例合集:10+ 头部新能源、汽车、半导体制造商以国产虚拟化支持 MES、PLM 等核心应用系统
制造·信创·超融合·vmware替代·企业云
带刺的坐椅1 个月前
100% 自主可控,Java Solon v3.3.1 发布(国产优秀应用开发基座)
java·spring·ai·信创·solon·mcp
漠月瑾-西安1 个月前
信创背景下的分布式数据库备份难题及解决之道
数据库·分布式·信创·数据备份
Nicolas8932 个月前
【大模型实战篇】华为信创环境采用vllm部署QwQ-32B模型
华为·信创·模型部署·昇腾·ascend·vllm·模型推理
response_L2 个月前
麒麟、UOS系统在线打开word文件并提取修订痕迹
java·信创·pageoffice·在线编辑·提取数据