DOC

#生成永久命名容器,不会自动删除
docker run --name euler-dev -itd -v D:\WSL\Workspace:/workspace openeuler/openeuler:24.03-lts bash

 docker run --name euler24.03 -itd -v /data:/data -p 31790:1790 -p 33306:3306 -p 36379:6379 -p 38080:8080 -p 38900:8900 -p 38890:8890 openeuler/openeuler:24.03-lts bash

依赖

没有xz,无法解压

dnf install -y xz

没有groupadd/useradd

dnf install -y shadow-utils

没有netstate

dnf install -y net-tools

毕胜JDK

dnf install -y bi-sheng-jdk-17

dnf install -y java-17-openjdk-headless

dnf install -y xz shadow-utils net-tools iproute tcpdump file

arm交叉编译起

apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

安装unrar

https://mirrors.aliyun.com/epel/8/Everything/x86_64/Packages/u/unrar-0.1.1-1.el8.x86_64.rpm

安装JDK
dnf install -y java-17-openjdk-headless
安装ODBC
dnf install -y unixODBC unixODBC-devel
安装redis
dnf install -y redis
# 确保目录存在 + 归属 redis
sudo mkdir -p /var/log/redis
sudo chown -R redis:redis /var/log/redis
sudo chmod 755 /var/log/redis
安装工具
dnf install -y ghostscript

# mutool源码编译后复制安装,单文件mutool

dnf install -y redis

安装GreatSLQ

https://greatsql.cn/docs/8.0.32-27/4-install-guide/3-3-openeuler-install.html

下载

curl -O https://product.greatdb.com/GreatSQL-8.0.32-27/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64-minimal.tar.xz

依赖

dnf install -y libaio numactl-libs openssl ncurses-libs

问题

  • Can’t open lib ‘/usr/lib64/libmyodbc5.so’ : file not found
    yum install -y mysql-connector-odbc
    下载官方(Oracle)驱动,mysql-connector-odbc-8.0.29-1.el8.aarch64.rpm(可以从)
    https://mirrors.aliyun.com/mysql/Connector-ODBC/8.0/下载,官方只能下载最新的)
    dnf localinstall mysql-connector-odbc-8.0.29-1.el8.aarch64.rpm
    安装后对应库文件为/usr/lib64/libmyodbc8w.so, 在/etc/odbcinst.ini中吧libmyodb5.so改成libmyodbc8w.so
    x86的系统安装mysql-connector-odbc-8.0.29-1.el8.x86_64.rpm

环境

     ~/.bashrc 会在docker exec -it *** bash中加载
     echo 'export PATH=/usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc

    groupadd mysql
    useradd -g mysql -M mysql -s /sbin/nologin

    mkdir -p /data/GreatSQL
    chown -R mysql:mysql /data/GreatSQL
    chmod -R 700 /data/GreatSQL
    # 3. 初始化(只做一次)
    mysqld --initialize-insecure --user=mysql --datadir=/data/GreatSQL

    # 4. 前台起
    mysqld --user=mysql --datadir=/data/GreatSQL --socket=/data/GreatSQL/mysql.sock

    #客户端
    mysql -S /data/GreatSQL/mysql.sock -u root
    已授权情况下
    mysql -h 127.0.0.1 -P 3306 -u root -p

授权

-- 如果已经有 root@'%' 但没密码 / 密码不对,先删了重来更干净
DROP USER IF EXISTS 'root'@'%';
CREATE USER 'root'@'%' IDENTIFIED BY 'Unifound@808';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 创建CCMAdmin,密码lchz761UF
CREATE USER 'CCMAdmin'@'%' IDENTIFIED BY 'lchz761UF';
GRANT ALL PRIVILEGES ON OPMDB.* TO 'CCMAdmin'@'%' WITH GRANT OPTION;
-- 创建CACADMIN,密码lchz761UF
CREATE USER 'CACADMIN'@'%' IDENTIFIED BY 'lchz761UF';
GRANT ALL PRIVILEGES ON UniCAC.* TO 'CACADMIN'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

创建数据库

--运行客户端,或Navicat
CREATE DATABASE OPMDB;
SOURCE opmdb_mysql.sql
CREATE DATABASE UniCAC;
SOURCE unicac_mysql.sql

补授权

  • 允许 root 从任意 IP 连(开发容器图省事,推荐)
    – 如果已经有 root@’%’ 但没密码 / 密码不对,先删了重来更干净
    DROP USER IF EXISTS ‘root‘@’%’;
    CREATE USER ‘root‘@’%’ IDENTIFIED BY ‘Unifound@808’;
    GRANT ALL PRIVILEGES ON . TO ‘root‘@’%’ WITH GRANT OPTION;
    FLUSH PRIVILEGES;
  • 只允许 127.0.0.1 + 容器网段(稍规整)
    CREATE USER IF NOT EXISTS ‘root‘@’127.0.0.1’ IDENTIFIED BY ‘Unifound@808’;
    GRANT ALL PRIVILEGES ON . TO ‘root‘@’127.0.0.1’ WITH GRANT OPTION;
    – 容器外(Docker 网桥 / 宿主机)连的话再补一个
    CREATE USER IF NOT EXISTS ‘root‘@’172.17.0.%’ IDENTIFIED BY ‘MyPass@123’;
    GRANT ALL PRIVILEGES ON . TO ‘root‘@’172.17.0.%’ WITH GRANT OPTION;
    FLUSH PRIVILEGES;
  • 别裸 root,建个业务用户(生产向)
    CREATE USER ‘greatsql‘@’%’ IDENTIFIED BY ‘Unifound@808’;
    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON . TO ‘greatsql‘@’%’;
    FLUSH PRIVILEGES;

/etc/my.cnf

[client]
socket    = /data/GreatSQL/mysql.sock
[mysql]
loose-skip-binary-as-hex
prompt = "(\\D)[\\u@GreatSQL][\\d]>"
no-auto-rehash
[mysqld]
user    = mysql
port    = 3306
server_id = 3306
basedir = /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64
datadir    = /data/GreatSQL
socket    = /data/GreatSQL/mysql.sock
pid-file = mysql.pid
character-set-server = UTF8MB4
skip_name_resolve = ON
default_time_zone = "+8:00"
bind_address = "0.0.0.0"
secure_file_priv = /data/GreatSQL

# Performance
lock_wait_timeout = 3600
open_files_limit    = 65535
back_log = 1024
max_connections = 1024
max_connect_errors = 1000000
table_open_cache = 4096
table_definition_cache = 2048
thread_stack = 512K
sort_buffer_size = 4M
join_buffer_size = 4M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
thread_cache_size = 768
interactive_timeout = 28800
wait_timeout = 28800
tmp_table_size = 96M
max_heap_table_size = 96M
max_allowed_packet = 64M
net_buffer_shrink_interval = 180
sql_generate_invisible_primary_key = ON
loose-lock_ddl_polling_mode = ON
loose-lock_ddl_polling_runtime = 200

# Logs
log_timestamps = SYSTEM
log_error = error.log
log_error_verbosity = 3
slow_query_log = ON
log_slow_extra = ON
slow_query_log_file = slow.log
long_query_time = 0.01
log_queries_not_using_indexes = ON
log_throttle_queries_not_using_indexes = 60
min_examined_row_limit = 100
log_slow_admin_statements = ON
log_slow_replica_statements = ON
log_slow_verbosity = FULL
log_bin = binlog
binlog_format = ROW
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 6G
max_binlog_size = 1G
binlog_space_limit = 500G
binlog_rows_query_log_events = ON
binlog_expire_logs_seconds = 604800
binlog_checksum = CRC32
binlog_order_commits = OFF
gtid_mode = ON
enforce_gtid_consistency = ON

# Replication
relay-log = relaylog
relay_log_recovery = ON
replica_parallel_type = LOGICAL_CLOCK
replica_parallel_workers = 16
binlog_transaction_dependency_tracking = WRITESET
replica_preserve_commit_order = ON
replica_checkpoint_period = 2
loose-rpl_read_binlog_speed_limit = 100

# MGR
loose-plugin_load_add = 'mysql_clone.so'
loose-plugin_load_add = 'group_replication.so'
loose-group_replication_group_name = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1"
loose-group_replication_local_address = "172.16.16.10:33061"
loose-group_replication_group_seeds = '172.16.16.10:33061,72.16.16.12:33061,72.16.16.12:33061'
loose-group_replication_communication_stack = "XCOM"
loose-group_replication_recovery_use_ssl = OFF
loose-group_replication_ssl_mode = DISABLED
loose-group_replication_start_on_boot = OFF
loose-group_replication_bootstrap_group = OFF
loose-group_replication_exit_state_action = READ_ONLY
loose-group_replication_flow_control_mode = "DISABLED"
loose-group_replication_single_primary_mode = ON
loose-group_replication_enforce_update_everywhere_checks = OFF
loose-group_replication_majority_after_mode = ON
loose-group_replication_communication_max_message_size = 10M
loose-group_replication_arbitrator = OFF
loose-group_replication_single_primary_fast_mode = 1
loose-group_replication_request_time_threshold = 100
loose-group_replication_primary_election_mode = GTID_FIRST
loose-group_replication_unreachable_majority_timeout = 0
loose-group_replication_member_expel_timeout = 5
loose-group_replication_autorejoin_tries = 288
loose-group_replication_recovery_get_public_key = ON
loose-group_replication_donor_threshold = 100
report_host = "172.16.16.10"

# InnoDB
innodb_buffer_pool_size = 2G #如果是专用的数据库服务器,则可以设置为物理内存的50%-70%,视实际情况而定
innodb_buffer_pool_instances = 8
innodb_data_file_path = ibdata1:12M:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 64M
innodb_redo_log_capacity = 6G
innodb_doublewrite_files = 2
innodb_doublewrite_pages = 128
innodb_max_undo_log_size = 4G
innodb_io_capacity = 10000
innodb_io_capacity_max = 20000
innodb_open_files = 65535
innodb_flush_method = O_DIRECT
innodb_use_fdatasync = ON
innodb_lru_scan_depth = 4000
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = ON
innodb_print_all_deadlocks = ON
innodb_online_alter_log_max_size = 4G
innodb_print_ddl_logs = ON
innodb_status_file = ON
innodb_status_output = OFF
innodb_status_output_locks = ON
innodb_sort_buffer_size = 64M
innodb_adaptive_hash_index = OFF
innodb_numa_interleave = OFF
innodb_spin_wait_delay = 20
innodb_print_lock_wait_timeout_info = ON
innodb_change_buffering = none
kill_idle_transaction = 300
innodb_data_file_async_purge = ON

#innodb monitor settings
#innodb_monitor_enable = "module_innodb,module_server,module_dml,module_ddl,module_trx,module_os,module_purge,module_log,module_lock,module_buffer,module_index,module_ibuf_system,module_buffer_page,module_adaptive_hash"

#pfs settings
performance_schema = 1
#performance_schema_instrument = '%memory%=on'
performance_schema_instrument = '%lock%=on'
文档更新时间: 2026-08-03 14:07   作者:方杰