欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux arm下安装mysql

程序员文章站 2022-03-03 14:46:30
...

linux arm下安装mysql

2.1 获取mysql安装包

从https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.23-1.el7.aarch64.rpm-bundle.tar下载安装包,放到/opt/rpm目录下,使用tar -xvf解压

2.2 使用rpm安装mysql

yum install -y perl-JSON
yum install -y perl-Test-Simple
rpm -e mariadb-libs --nodeps
rpm -ivh mysql-community-common-8.0.23-1.el7.aarch64.rpm
rpm -ivh mysql-community-client-plugins-8.0.23-1.el7.aarch64.rpm
rpm -ivh mysql-community-libs-8.0.23-1.el7.aarch64.rpm
rpm -ivh mysql-community-client-8.0.23-1.el7.aarch64.rpm
rpm -ivh mysql-community-server-8.0.23-1.el7.aarch64.rpm

2.3 配置mysql

2.3.1 关闭selinux

  1. 临时关闭
setenforce 0
  1. 永久关闭

编辑/etc/sysconfig/selinux

vim /etc/sysconfig/selinux
  1. 然后将配置SELinux=enforcing改为SELinux=disabled,如下图所示。
SELINUX=disabled

2.3.2 配置mysql

  1. 创建mysql的数据目录,并把此目前权限赋给mysql用户及用户组
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
  1. 配置/etc/my.cnf,注意把innodb_buffer_pool_size设置成机器内存的70%左右
[client]
port = 3306
host = localhost
socket                                                  =/data/mysql/mysql.sock

[mysqld]
# Base Config
#server_id								= 882137661
datadir							=/data/mysql
socket							=/data/mysql/mysql.sock
port							= 3306
character_set_server					= utf8
skip_slave_start					= 1
skip-name-resolve					= 1
skip-external-locking					= 1
lower_case_table_names					= 1
max_connections						= 1000
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' 

# InnoDB config
#innodb_strict_mode						= 1
#innodb_file_per_table					= 1
#innodb_stats_on_metadata				= 0
#innodb_flush_method						= O_DIRECT
#innodb_log_files_in_group				= 3
#innodb_data_file_path					= ibdata1:1G:autoextend
innodb_buffer_pool_size					= 20G
#innodb_max_dirty_pages_pct				= 60
#innodb_io_capacity						= 400
#innodb_buffer_pool_instances			= 8
#innodb_buffer_pool_load_at_startup		= 1
#innodb_buffer_pool_dump_at_shutdown		= 1
#innodb_undo_logs 						= 128
#innodb_undo_tablespaces					= 3
#innodb_thread_concurrency				= 4
innodb_open_files = 65536
innodb_io_capacity =400
innodb_doublewrite = OFF
innodb_flush_method=O_DIRECT

# Cache config
key_buffer_size							= 2048M
tmp_table_size							= 512M
max_heap_table_size						= 256M
thread_cache_size						= 64
table_open_cache						= 128
open_files_limit						= 65535
max_allowed_packet						= 256M



#####################用户进程分配到的内存设置BEGIN#############################

##每个session将会分配参数设置的内存大小
#用于表的顺序扫描,读出的数据暂存于read_buffer_size中,当buff满时或读完,将数据返回上层调用者
#一般在128kb ~ 256kb,用于MyISAM
read_buffer_size = 256M
#用于表的随机读取,当按照一个非索引字段排序读取时会用到,
#一般在128kb ~ 256kb,用于MyISAM
read_rnd_buffer_size = 512M
#order by或group by时用到

#建议先调整为2M,后期观察调整
join_buffer_size	= 2048M
sort_buffer_size = 1024M

#一般数据库中没什么大的事务,设成1~2M,默认32kb
#binlog_cache_size = 524288

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Log config
#relay-log								= mysql-relay
#log-bin									= mysql-bin
#slow_query_log							= 1
#long_query_time							= 2
log_slow_admin_statements				= 1
log_slow_slave_statements				= 1


lock_wait_timeout                                       = 1800

  1. 启动mysql,并设置成开机自启动
systemctl start mysqld
systemctl enable mysqld

2.3.3 修改root的密码

  1. /etc/mysql.cnf[mysqld]后面添加skip-grant-table

  2. 重启mysql服务systemctl restart mysqld

  3. 进入数据库

    mysql -u root -p
    

    直接敲回车

    输入一下代码

    use mysql;
    -- 解决在`skip-grant-table`下不能修改密码的问题
    update user set authentication_string='' where user='root';
    -- 刷新权限
    flush privileges;
    -- 设置验证密码规则为简单模式
    set GLOBAL  validate_password.policy=LOW;
    -- 设置密码长度为6位
    set global validate_password.length=6;
    -- 设置root可以让任何ip访问
    update user set user.Host='%' where user.User='root';
    -- 设置密码永不过期
    ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
    -- 设置密码为123456
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    -- 刷新权限
    flush privileges;
    -- 退出
    quit;
    
  4. /etc/mysql.cnf[mysqld]后面删除skip-grant-table

  5. 重启mysql服务systemctl restart mysqld

  6. 可以使用mysql -u root -p -h <mysql服务器的ip>命令,然后数据密码是否能够登陆。

相关标签: 离线安装