Arm CentOS7.6的MySQL8数据库安装配置

1 综述

下文为基于Arm架构Linux系统的MySQL8的安装配置,操作系统镜像为CentOS-7-aarch64-Everything-1810.iso。

对于Arm Linux,MySQL官网仅提供MySQL8的rpm安装包,所以从MySQL官网下载mysql-8.0.25-1.el7.aarch64.rpm-bundle.tar进行rpm方式的安装。

2 安装

2.1 关闭SELINUX

SELINUX对MySQL的运行存在干扰,需关闭SELINUX

# vim /etc/selinux/config

把SELINUX=enforcing改为SELINUX=disabled
重启,避免SELINUX干扰MySQL启动。

2.2 查询并卸载MariaDB

MariaDB作为MySQL的替代品,在CentOS系统中存在其部分安装,如果存在,则MySQL将无法正常安装,需卸载系统中存在的MariaDB组件。
查询系统中已经存在的MariaDB组件

# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.aarch64

卸载系统中存在的MariaDB组件

# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.aarch64

2.3 原有MySQL残留清理

确认系统中是否已经安装MySQL

# rpm -qa mysql

确认系统中没有mysql配置文件

# find / -name my.cnf

如果存在则进入所在目录,删除my.cnf

# rm -f my.cnf

2.4 安装MySQL

联网下安装依赖的openssl:

# yum -y install openssl openssl-devel

解压MySQL的tar包:

# tar -xvf mysql-8.0.25-1.el7.aarch64.rpm-bundle.tar

逐个安装:

# rpm -ivh mysql-community-common-8.0.25-1.el7.aarch64.rpm
# rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.aarch64.rpm
# rpm -ivh mysql-community-libs-8.0.25-1.el7.aarch64.rpm
# rpm -ivh mysql-community-libs-compat-8.0.25-1.el7.aarch64.rpm
# rpm -ivh mysql-community-client-8.0.25-1.el7.aarch64.rpm
# rpm -ivh mysql-community-server-8.0.25-1.el7.aarch64.rpm
# rpm -ivh mysql-community-devel-8.0.25-1.el7.aarch64.rpm
# rpm -ivh mysql-community-embedded-compat-8.0.25-1.el7.aarch64.rpm

3 配置

3.1 my.cnf相关配置

安装完毕,会生成在/etc文件夹下生成my.cnf配置文件,原生的my.cnf存在错误,其仅包含mysqld节,且默认配置不满足项目需要,需要更改该配置文件。

  1. 数据目录
    查看/etc/my.cnf文件其datadir指向的data目录为/var/lib/mysql,而该目录下存在众多MySQL程序文件,作为data目录不便于维护,需要在该目录下新建data目录且设置其用户与用户组为mysql作为新的datadir,进入/var/lib/mysql/下执行以下命令:

     # mkdir data
     # chown -R data
     # chgrp -R data
    

    修改my.cnf中datadir=/var/lib/mysql为datadir=/var/lib/mysql/data。

  2. 默认加密插件
    MySQL8引入了新的默认加密插件caching_sha2_password,但是客户端不支持该加密插件,需要还原为MySQL5所用的默认的加密插件mysql_native_password:my.cnf文件中打开default-authentication-plugin=mysql_native_password选项。

  3. 用户
    mysqld节中增加用户设置:

     user=mysql
    
  4. 最大允许数据包大小
    项目中需要数据库允许较大的文本存储范围,而max_allowed_packet默认值仅为4M,需在mysqld节中增加设置为128M:

     max_allowed_packet=128M
    
  5. 大小写敏感
    MySQL8在Linux中默认敏感,项目中需要大小写不敏感,mysqld节中增加设置:

     lower_case_table_names=1
    
  6. mysqld_safe节
    将原有的数据库错误日志文件、pid配置从mysqld节中移除,新建mysqld_safe节,这2项归于此节下。
    最终修改的部分如下所示:

     [mysqld]
     ……
     default-authentication-plugin=mysql_native_password
     
     datadir=/var/lib/mysql/data
     socket=/var/lib/mysql/mysql.sock
     user=mysql
     max_allowed_packet=128M
     lower_case_table_names=1
     
     [mysqld-safe]
     log-error=/var/log/mysqld.log
     pid-file=/var/run/mysqld/mysqld.pid
    

3.2 初始化

# mysqld --initialize

注意记住初始化密码。

3.3 启动

# systemctl start mysqld

3.4 登录

# mysql -uroot –p

输入初始化步骤记住的登录密码。

3.5 密码配置与全域远程登录配置

mysql> alter user 'root'@'localhost' identified by "123456";  #改密码
Query OK, 0 rows affected (0.08 sec)
mysql> create user 'root'@'%' identified by '123456';    #改全域
Query OK, 0 rows affected (0.09 sec)
mysql> grant all privileges on *.* to 'root'@'%';   #赋权限
Query OK, 0 rows affected (0.09 sec)
mysql> flush privileges;                   #立刻生效
Query OK, 0 rows affected (0.03 sec)
mysql> quit;

3.6 开放服务端口

Linux防火墙需开放MySQL的服务访问端口tcp:3306。

# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --list-ports

3.7 服务开机自启

# systemctl enable mysqld

4 数据库备份

数据库备份与导入均使用Navicat Premium操作。

使用Navicat Premium连接到需要备份数据库的MySQL数据库服务器。

Navicat列表中的当前连接下级的需备份数据库。双击打开。右键–>转储SQL文件–>结构和数据,在另存为窗口中选择存储目录与sql文件名,点击“保存”进行数据库备份。
等待完成即可。

5 数据库导入

使用Navicat Premium连接到需要导入数据库的MySQL数据库服务器。

在连接列表中对应连接名上右键–>新建数据库,弹出的窗口中输入数据库名:mydb,选择字符集:utf8,选择排序规则:utf8_general_ci。点击确定。

Navicat列表中的当前连接下级出现新建的mydb数据库。双击打开mydb数据库。右键–>运行SQL文件,在弹出的对话框中选择备份的sql文件,点击“开始”执行数据库导入。

等待完成即可。

猜你喜欢

转载自blog.csdn.net/langshuibaren/article/details/123167130