ARM架构安装MySQL8.0

发布于:2025-04-07 ⋅ 阅读:(29) ⋅ 点赞:(0)

1. 配置网络[可忽略,若网络不通则配置]

[root@root /]# cd /etc/sysconfig/network-scripts
[root@root network-scripts]# vi ifcfg-enp4s0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp4s0
UUID=7354f92a-b795-42f8-888f-d0a499d1e363
DEVICE=enp4s0
ONBOOT=yes
IPADDR=192.168.31.71
PREFIX=24
GATEWAY=192.168.31.1
#新增DNS
DNS1=8.8.8.8
DNS2=114.114.114.114

#执行命令重启网络
[root@root network-scripts]# sudo systemctl restart NetworkManager
[root@root network-scripts]# ping www.baidu.com
PING www.a.shifen.com (39.156.70.239) 56(84) 字节的数据。
64 字节,来自 39.156.70.239 (39.156.70.239): icmp_seq=1 ttl=50 时间=62.0 毫秒
64 字节,来自 39.156.70.239 (39.156.70.239): icmp_seq=2 ttl=50 时间=61.7 毫秒
配置senlince[MySql安装需配置]
[root@root /]# vi /etc/sysconfig/selinux
SELINUX=disabled

2. 设置临时senlince, 若要永久生效则reboot

[root@root /]# setenforce 0
[root@root ~]# getenforce
Disabled
# 配置最大文件数[MySql默认10000]
# 配置全局mysql软硬件最大打开文件数
[root@root ~]# vi /etc/security/limits.conf
mysql soft nofile 65535
mysql hard nofile 65535


# End of file

# 查看MySQL进程当前限制
[root@root logs]# cat /proc/$(pgrep mysqld)/limits | grep 'Max open files'
Max open files            10000                10000                files

# 查看系统全局限制[配置重启生效]
[root@root logs]# ulimit -n
# 查看mysql用户文件数配置
[root@root ~]# sudo -u mysql ulimit -n
[root@root ~]# mkdir -p /etc/systemd/system/mysqld.service.d/
# 新建限制配置文件
[root@root ~]# vim /etc/systemd/system/mysqld.service.d/limits.conf

# 添加以下内容
[Service]
LimitNOFILE=65535

# 修改内核参数
# 临时提高系统全局限制
[root@root ~]# sudo sysctl -w fs.file-max=65535
# 永久生效(编辑 /etc/sysctl.conf)
[root@root ~]# echo "fs.file-max=65535" | sudo tee -a /etc/sysctl.conf
[root@root ~]# sudo sysctl -p
# 重新加载 systemd 配置
[root@root ~]# systemctl daemon-reload
# 再次验证新限制
[root@root ~]# cat /proc/$(pgrep mysqld)/limits | grep 'Max open files'

3. 基于ARM架构安装Mysql

[root@root home]# mkdir -p sqyr/local/software
[root@root home]# cd sqyr/local/software
[root@root software]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.40-1.el8.aarch64.rpm-bundle.tar
[root@root local]# cd local
[root@root local]# mkdir mysql-8.0.40
[root@root mysql-8.0.40]# cp /home/sqyr/local/software/mysql-8.0.40-1.el8.aarch64.rpm-bundle.tar  /home/sqyr/local/mysql-8.0.40/
#在安装之前更新yum资源
[root@root mysql-8.0.40]# yum clean all
[root@root mysql-8.0.40]# yum makecache
[root@root mysql-8.0.40]# yum update
#安装mysql8.0.40依赖库
[root@root mysql-8.0.40]# yum install gcc net-tools pcre-devel zlib zlib-devel openssl openssl-devel libaio*
[root@root mysql-8.0.40]# sudo dnf install -y libaio numactl openssl perl
[root@root mysql-8.0.40]# yum install -y perl-Module-Install.noarch
#解压mysql8.0.40
[root@root mysql-8.0.40]# tar -xvf mysql-8.0.40-1.el8.aarch64.rpm-bundle.tar
[root@root mysql-8.0.40]# rm -rf mysql-8.0.40-1.el8.aarch64.rpm-bundle.tar
#执行安装
[root@root mysql-8.0.40]# rpm -ivh mysql-community-common-8.0.40-1.el8.aarch64.rpm
[root@root mysql-8.0.40]# rpm -ivh mysql-community-client-plugins-8.0.40-1.el8.aarch64.rpm
[root@root mysql-8.0.40]# rpm -ivh mysql-community-libs-8.0.40-1.el8.aarch64.rpm
[root@root mysql-8.0.40]# rpm -ivh mysql-community-client-8.0.40-1.el8.aarch64.rpm
[root@root mysql-8.0.40]# rpm -ivh mysql-community-icu-data-files-8.0.40-1.el8.aarch64.rpm
[root@root mysql-8.0.40]# rpm -ivh mysql-community-server-8.0.40-1.el8.aarch64.rpm
#查看安装
[root@root mysql-8.0.40]# rpm -qa|grep -i mysql
mysql-community-server-8.0.40-1.el8.aarch64
mysql-community-common-8.0.40-1.el8.aarch64
mysql-community-client-8.0.40-1.el8.aarch64
mysql-community-libs-8.0.40-1.el8.aarch64
mysql-community-client-plugins-8.0.40-1.el8.aarch64
mysql-community-icu-data-files-8.0.40-1.el8.aarch64
#在首次启动mysql之前,配置[忽略表名大小写, 若不指定则按默认0配置]
[root@root mysql-8.0.40]# vi /etc/my.cnf
lower_case_table_names=1
#执行启动mysql
[root@root mysql-8.0.40]# systemctl start mysqld
#查看mysql是否启动
[root@root mysql-8.0.40]# ss -tnl
[root@root mysql-8.0.40]# ps -ef | grep mysql
#查询初始化密码
[root@root mysql-8.0.40]# cat /var/log/mysqld.log  | grep password
[root@root mysql-8.0.40]# mysql -u root -p 
#登录成功后执行命令
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yl@GzSqyr#2025.';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

CREATE USER 'root'@'%' IDENTIFIED BY 'yl@GzSqyr#2025.';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

#退出后,停止服务
[root@root mysql-8.0.40]# systemctl stop mysqld
#创建安装目录
[root@root mysql-8.0.40]# mkdir -p install/data
#拷贝源数据文件到新的数据文件位置
[root@root mysql-8.0.40]# cp -fa  /var/lib/mysql/* /home/sqyr/local/mysql-8.0.40/install/data/
#修改数据目录权限
[root@root mysql-8.0.40]# chown -R mysql:mysql /home/sqyr/local/mysql-8.0.40/install/
#切换目录, 删除源数据文件并备份
[root@root mysql-8.0.40]# cd /var/lib/
[root@root lib]# mv mysql mysql_bak
#切换目录, 配置日志文件和目录权限
[root@root lib]# cd /home/sqyr/local/mysql-8.0.40/install/data/
[root@root data]# mkdir logs
[root@root data]# cd logs/
[root@root logs]# touch mysql-slow.log
[root@root logs]# chmod 775 mysql-slow.log
[root@root logs]# touch mysqld.log
[root@root logs]# chmod 775 mysqld.log
[root@root logs]# chown -R mysql:mysql /home/sqyr/local/mysql-8.0.40/install/data/logs/
#切换安装目录, 复制errmsg.sys到该目录
[root@root logs]# cd /home/sqyr/local/mysql-8.0.40/install/
[root@root install]# mkdir -p share/mysql/
[root@root install]# mkdir -p share/mysql/english
[root@root install]# mkdir -p share/mysql/german
[root@root install]# cp /usr/share/mysql-8.0/english/errmsg.sys /home/sqyr/local/mysql-8.0.40/install/share/mysql/
[root@root install]# cp /usr/share/mysql-8.0/english/errmsg.sys /home/sqyr/local/mysql-8.0.40/install/share/mysql/english/
[root@root install]# cp /usr/share/mysql-8.0/german/errmsg.sys /home/sqyr/local/mysql-8.0.40/install/share/mysql/german/
#切换目录配置插件
[root@root install]# mkdir -p lib64/mysql/plugin 
[root@root install]# mkdir -p lib64/mysql/private
[root@root install]# cp /lib64/mysql/plugin/validate_password.so /home/sqyr/local/mysql-8.0.40/install/lib64/mysql/plugin/
[root@root install]# cp /lib64/mysql/plugin/component_validate_password.so /home/sqyr/local/mysql-8.0.40/install/lib64/mysql/plugin
[root@root install]# cp /lib64/mysql/plugin/component_reference_cache.so /home/sqyr/local/mysql-8.0.40/install/lib64/mysql/plugin
[root@root install]# cp /lib64/mysql/plugin/connection_control.so /home/sqyr/local/mysql-8.0.40/install/lib64/mysql/plugin/
[root@root install]# chown -R mysql:mysql /home/sqyr/local/mysql-8.0.40/install/lib64/mysql/private/
[root@root install]# ln -s /usr/share/icu /home/sqyr/local/mysql-8.0.40/install/lib64/mysql/private/
#备份my.cnf
cp /etc/my.cnf /etc/my.cnf_bak
#写入配置文件如下
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password

[mysqld]
# 基础目录
basedir=/home/sqyr/local/mysql-8.0.40/install/
# 数据目录
datadir=/home/sqyr/local/mysql-8.0.40/install/data
# 通讯链接文件
socket=/home/sqyr/local/mysql-8.0.40/install/data/mysql.sock
# 端口号
port=3306
# 绑定地址
bind-address=0.0.0.0
# 符号链接
skip-name-resolve
# 默认编码
character-set-server=utf8mb4
# 默认时区
default-time_zone='+8:00'
# 默认采用InnoDB存储引擎
default-storage-engine=INNODB
# 时间格式
explicit_defaults_for_timestamp=true
# 每执行一个事务都强制写入磁盘
sync_binlog=1
# 忽略表名大小写
lower_case_table_names=1

# 使用独立表空间
innodb_file_per_table=1
# 数据缓冲区大小,如果是单实例且绝大多数是InnoDB引擎表的话,可考虑设置为物理内存的50% ~ 70%左右;
innodb_buffer_pool_size=2G
# innodb缓冲池块大小
innodb_buffer_pool_chunk_size=128M
# innodb缓冲池实例数
innodb_buffer_pool_instances=8
# 如果要求数据不能丢失,为了数据安全,那么两个都设为1
innodb_flush_log_at_trx_commit=1
# 事务日志大小
innodb_log_file_size=256M
# 设置2,基本可满足90%以上的场景;
innodb_log_files_in_group=2
# 日志缓冲区大小
innodb_log_buffer_size=4M
# 如果库里的表特别多的情况,请增加此值
innodb_open_files=2048
# mysql的数据文件,千万不要用默认的10M,否则在有高并发事务时,会受到不小的影响
#innodb_data_file_path=ibdata1:12m;ibdata2:1g:autoextend

# 服务器最大连接数
max_connections=1024
# 服务器验证密码超过1000次拒绝连接
max_connect_errors=1000
# 消息缓冲区会用到该列,该值太小则会在处理大包时产生错误。如果使用大的text,BLOB列,必须增加该值
max_allowed_packet=256M
# 排序使用的缓冲大小,高并发的情况下, 需要减小此值到64K-128K
sort_buffer_size=4M
# 若果多表连接需求大,则这个值要设置大一点
join_buffer_size=6M
# 读缓冲区大小
read_buffer_size=3M
# 随机读缓冲区大小设置
read_rnd_buffer_size=6M
# 索引块的缓冲区大默认16M
key_buffer_size=128M

# 表描述符缓存大小,可减少文件打开/关闭次数,一般max_connections*2
table_open_cache=2048
table_definition_cache=2048
# 设置临时表最大值,不要设置过大,否则容易导致OOM发生
tmp_table_size=128M
max_heap_table_size=32M
# 服务器能够同时打开的文件数量上限
open_files_limit=65535
# 跳过指定error no类型的错误
replica_skip_errors=1114

# 数据读取超时时间
net_read_timeout=10800
# 数据写入超时时间
net_write_timeout=10800
# 服务器关闭非交互连接之前等待活动的秒数
wait_timeout=86400
# 服务器关闭交互式连接前等待活动的秒数
interactive_timeout=86400
# 优化mysql的线程缓存,服务器线程缓存这个值表示可以重新利用保存在缓存中线程的数量
thread_cache_size=64

# 控制binlog日志文件保留时间,超过时间会删除
binlog_expire_logs_seconds=604800
# 开启慢日志查询
slow_query_log=ON
# 慢查询的阈值为3
long_query_time=3
# 输出慢日志文件
slow_query_log_file=/home/sqyr/local/mysql-8.0.40/install/data/logs/mysql-slow.log
# 一般有两种形式,FILE和TABLE,默认FILE; TABLE时mysql库的slow_log表中
log_output=FILE,TABLE
# 用来缓存批量插入数据的时候临时缓存写入数据。如果有大量数据插入可提高此参数值,默认是8M
bulk_insert_buffer_size=64M
# MyISAM设置恢复表之时使用的缓冲区的尺寸,默认为8M,最小值4k。当在REPAIR TABLE 或用 CREATE INDEX 创建索引或ALTER TABLE过程中对MyISAM索引排序时分配的缓冲区
myisam_sort_buffer_size=32M
#对应errmsg.sys目录和文件位置
lc-messages-dir=/home/sqyr/local/mysql-8.0.40/install/share/mysql


# 设置log-error日志文件
log-error=/home/sqyr/local/mysql-8.0.40/install/data/logs/mysqld.log
# 设置pid-file进程文件
pid-file=/var/run/mysqld/mysqld.pid
# 设置mysql模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

[client]
socket=/home/sqyr/local/mysql-8.0.40/install/data/mysql.sock
default-character-set=utf8mb4

[mysql]
socket=/home/sqyr/local/mysql-8.0.40/install/data/mysql.sock
default-character-set=utf8mb4
#重新启动mysql, 并在目录下/mysql-8.0.40/install/data/logs查看启动日志情况
[root@root install]# systemctl start mysqld
#防火墙配置
[root@root install]# firewall-cmd --permanent --add-port=3306/tcp
[root@root install]# firewall-cmd –reload
[root@root install]# firewall-cmd --zone=public --list-ports
[root@root install]# systemctl restart firewalld
[root@root install]# systemctl status firewalld
#设置mysql自启动
[root@root install]# systemctl enable mysqld.service
[root@root install]# systemctl list-unit-files | grep mysqld.service

网站公告

今日签到

点亮在社区的每一天
去签到