Deploy MySQL 8.0 on Kylin V10 Lance without Internet Access

  1. Obtain the Offline Bundle

Download the mysql-8.0.36-1.el8.aarch64.rpm-bundle.tar archive from the official MySQL site and transfer it to the Kylin V10 (Lance) host using any removabel medium.

  1. Extract and Install RPMs

# Unpack the archive
tar -xf mysql-8.0.36-1.el8.aarch64.rpm-bundle.tar

# Install in dependency order
sudo dnf -y localinstall \
  mysql-community-common-8.0.36-1.el8.aarch64.rpm \
  mysql-community-client-plugins-8.0.36-1.el8.aarch64.rpm \
  mysql-community-libs-8.0.36-1.el8.aarch64.rpm \
  mysql-community-client-8.0.36-1.el8.aarch64.rpm \
  mysql-community-icu-data-files-8.0.36-1.el8.aarch64.rpm \
  mysql-community-server-8.0.36-1.el8.aarch64.rpm

  1. Tune /etc/my.cnf

[client]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
default-character-set = utf8mb4

[mysql]
prompt          = "KySQL [\d]> "
no-auto-rehash

[mysqld]
port                       = 3306
socket                     = /var/lib/mysql/mysql.sock
default_authentication_plugin = mysql_native_password

datadir                    = /var/lib/mysql
pid-file                   = /var/lib/mysql/mysqld.pid
user                       = mysql
bind-address               = 0.0.0.0
server-id                  = 1

init-connect               = 'SET NAMES utf8mb4'
character-set-server       = utf8mb4
collation-server           = utf8mb4_0900_ai_ci

skip-name-resolve
back_log                   = 300

max_connections            = 4096
max_connect_errors         = 6000
open_files_limit           = 65535
table_open_cache           = 1024
max_allowed_packet         = 512M
binlog_cache_size          = 1M
max_heap_table_size        = 16M
tmp_table_size             = 128M

read_buffer_size           = 2M
read_rnd_buffer_size       = 8M
sort_buffer_size           = 8M
join_buffer_size           = 8M
key_buffer_size            = 256M

thread_cache_size          = 64
ft_min_word_len            = 4

log_bin                    = binlog
binlog_format              = ROW
binlog_expire_logs_seconds = 604800

log_error                  = /var/lib/mysql/error.log
slow_query_log             = 1
long_query_time            = 1
slow_query_log_file        = /var/lib/mysql/slow.log

performance_schema         = 0
explicit_defaults_for_timestamp

lower_case_table_names     = 1
skip-external-locking

default_storage_engine     = InnoDB
innodb_file_per_table      = 1
innodb_open_files          = 500
innodb_buffer_pool_size    = 1024M
innodb_write_io_threads    = 4
innodb_read_io_threads     = 4
innodb_thread_concurrency  = 0
innodb_purge_threads       = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size     = 2M
innodb_log_file_size       = 32M
innodb_log_files_in_group  = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout   = 120

bulk_insert_buffer_size    = 8M
myisam_sort_buffer_size    = 64M
myisam_max_sort_file_size  = 10G

interactive_timeout        = 28800
wait_timeout               = 28800

binlog_rows_query_log_events = 1
log_bin_trust_function_creators = 1
log_timestamps             = SYSTEM

sql_mode                   = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
innodb_strict_mode         = 0
plugin-load                = mysql_clone.so

[mysqldump]
quick
max_allowed_packet         = 512M

[myisamchk]
key_buffer_size            = 256M
sort_buffer_size           = 8M
read_buffer                = 4M
write_buffer               = 4M

  1. Skip Random Root Password Generation

The RPM package automatically creates a random password during the first start. To suppress this and start with an empty root password, patch the helper script:

sudo sed -i 's|--initialize |--initialize-insecure |g' /usr/bin/mysqld_pre_systemd

  1. Enable and Launch the Service

sudo systemctl enable --now mysqld

After the daemon is up, connect locally and set a strong root password:

mysql -uroot
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Str0ngP@ss!';

Tags: Kylin V10 MySQL 8.0 offline installation rpm bundle systemd service

Posted on Wed, 22 Jul 2026 16:20:26 +0000 by kurtis