(三)基于arm64/aarch64架构的Debian Linux中mysql5.7+详细安装过程
专题系列往期文章目录
(一)移动端安卓手机改造成linux服务器&Linux中安装软件踩坑历险记
(二)Debian Linux系统中安装oracle JDK1.8详细过程(arm64/aarch64架构下)
快捷目录
- 专题系列往期文章目录
- 前言
- 一、mysql5.7数据库的安装
- 二、mysql5.7数据库密码设置与修改
- 三、设置mysql数据库允许其他用户远程连接
- 四、MySQL数据库中用户的创建与授权
- 五、创建和初始化待部署项目所需数据库
- 总结
前言
在上一篇文章中,主要分享了 改造后的安卓手机Linux系统中 JDK1.8的安装与环境变量配置等内容。本文就 基于arm/aarch64指令集架构的Linux系统中 mysql5.7的安装与相关配置
作一详细介绍。(温馨提示: 本篇文章也适合作为“树莓派”等设备中mysql5.7的安装教程)
一、mysql5.7数据库的安装
数据库,顾名思义数据仓库,一般用来存放、管理应用系统的各种数据,所以数据库是一个系统中不可或缺的一部分。在日常生活中,我们每天会接触到很多的数据,这些数据根据其自身特点可划分为三类:结构化数据、半结构化数据 和 非结构化数据。因此相应的就出现了不同类型的数据库(关系型数据库 与 非关系型数据库) 以存储不同类型的数据。
- 非关系型数据库:又叫 NoSQL (即Not Only SQL),用来存储半结构化数据 和 非结构化数据。常见的NoSQL数据库有:Redis、MongoDB等。
- 关系型数据库:即采用关系模型来组织数据的数据库,以行和列的形式(即二维表格)来存储数据。通过表和表之间,行和列之间的关系将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,大大增加了速度并提高了灵活性。 关系型数据库用来表示和存储结构化数据。常见的关系型数据库主要有:MySQL、 Oracle、DB2、SQL Server、SQLLite等。
MySQL是一款非常优秀的关系型数据库,因为其速度、可靠性和适应性而备受关注,很多网站都是用Mysql作为数据存储,所以接下来将详细的分享arm/aarch64架构的 Linux系统中mysql5.7的安装与配置。
1.检查当前Linux操作系统位数(即系统的CPU架构类型)
一台机器的CPU架构类型决定了当前CPU支持的指令集,所以在Linux系统中安装MySQL前一定要先查看当前系统的CPU架构。 可使用arch、uname、getconf LONG_BIT 等相关命令进行查看。
root@localhost:/home# getconf LONG_BIT64root@localhost:/home# root@localhost:/home# uname -aLinux localhost 5.4.0-aidlite #1 SMP PREEMPT Thu Jul 28 17:52:05 CST 2022 aarch64 GNU/Linuxroot@localhost:/home# root@localhost:/home# uname -arLinux localhost 5.4.0-aidlite #1 SMP PREEMPT Thu Jul 28 17:52:05 CST 2022 aarch64 GNU/Linuxroot@localhost:/home# root@localhost:/home# uname -maarch64root@localhost:/home# root@localhost:/home# archaarch64root@localhost:/home#
2.根据Linux系统CPU架构类型下载对应的mysql5.7安装包
通过上一步可知,我的Linux系统是Arm/aarch64架构的,所以需要下载arm/aarch64架构的mysql5.7安装包。
在Linux系统中,其实可以通过apt等包管理工具直接安装数据库,但是这种方式安装的数据库大多数情况下不是MySQL,而是mysql的一个分支:MariaDB数据库(虽然这两者在很多方面互相兼容但随着各自分支的发展和新特性的加入,不兼容的地方会越来越多,所以个人建议在项目一开始就选择好数据库,否则后期迁移数据也是个头疼的事)。所以如果项目中需要mysql的话,就只能通过官网等地方自行下载安装包并进行安装使用。值得一提的是:在MySQL的官方提供版本中,5.7版本只提供amd64架构的包 没有Arm的(8.0版本有支持arm架构的版本),所以5.7需要在其他地方下载。
第一步: 更换下载镜像源
速度比较快的国内源有阿里云、华为云、中科大等,具体配置过程请参考 Linux arm64架构修改软件源 。本文使用的是中科大的:
#中科大镜像站deb https://mirrors.ustc.edu.cn/debian/ buster main contrib non-freedeb https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-freedeb https://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-freedeb https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-freedeb-class="lazy" data-src https://mirrors.ustc.edu.cn/debian/ buster main contrib non-freedeb-class="lazy" data-src https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-freedeb-class="lazy" data-src https://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-freedeb-class="lazy" data-src https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free
第二步: 下载mysql5.7安装包
在上一篇中已经介绍过,Linux系统中下载软件包的方式有两种,本文将以二进制安装包为例进行说明。
- 方法一: 通过官网自行下载 然后上传到Linux服务器
1. 点击下载二进制安装包到本地:
(说明:若下载链接失效,请私信我或评论区留言)
- 32位系统下载地址: arm/aarch32架构的mysql5.7下载地址
- 64位系统下载地址: arm/aarch64架构的mysql5.7下载地址·
.
2. 上传压缩包到Linux服务器usr/local/mysql(没有需自行创建文件夹)下
这里提供三种上传方式:通过XShell远程工具;通过Linux的rz命令;通过AidLux提供的文件管理 。
- 第一种:XShell远程工具上传:直接参考 Xshell怎么传文件到Linux 或 使用xshell上传文件到Linux服务器的方法 即可
- 第二种:Linux的rz命令:在终端输入rz -be回车,选择刚下载好的 mysql5.7压缩包进行上传即可
- 第三种:AidLux提供的文件管理:PC端浏览器中输入手机ip:8000进入Linux服务器登录界面->输入账号密码登录->点击打开文件浏览器->点击上传->选择压缩包上传
- 方法二: 直接通过wget命令下载到Linux服务器的目录
在Linux终端,进入到usr/local/mysql(没有需自行创建文件夹)下,输入 wget+地址+参数 命令 回车等待下载完成
- 32位系统下载命令:wget https://linuxer.top/usr/uploads/2020/06/mysql57_armhf.tar.gz
- 62位系统下载地址:wget https://linuxer.top/usr/uploads/2020/06/mysql57_arm64.tar.gz
root@localhost:/home# pwd/homeroot@localhost:/home# cd /usr/local/mysqlroot@localhost:/usr/local/java# pwd/usr/local/mysqlroot@localhost:/usr/local/mysql# lltotal 0root@localhost:/usr/local/mysql# root@localhost:/usr/local/mysql# wget https://linuxer.top/usr/uploads/2020/06/mysql57_arm64.tar.gzroot@localhost:/usr/local/mysql# lltotal 20M-rw-r--r--. 1 root root 20M Jun 5 2020 mysql57_arm64.tar.gzroot@localhost:/usr/local/mysql#
温馨提示:
1.如果提示wget不存在的话,使用包管理命令下载(在Debian系统下可使用apt 或 apt-get 或 dpkg等命令进行安装apt install -y wget)即可
2.如果下载中途报错,请在下载地址后面缀上:–no-check-certificate参数
3.安装 mysql5.7数据库
由于本文下载的是经编译并打包好的mysql5.7二进制安装包,所以安装时需解压后使用安装命令+解压后的包名进行安装。
注意: 安装前最好先检查确认是否已安装了MySQL,如果有必须先卸载系统自带的或之前安装的旧版本,避免造成不必要的冲突。
1. 解压 mysql5.7二进制安装包
(命令: tar -zxvf mysql57_arm64.tar.gz )
root@localhost:/usr/local/mysql# pwd/usr/local/mysqlroot@localhost:/usr/local/mysql#root@localhost:/usr/local/mysql# lltotal 20M-rw-r--r--. 1 root root 20M Jun 5 2020 mysql57_arm64.tar.gzroot@localhost:/usr/local/mysql#root@localhost:/usr/local/mysql# tar -zxvf mysql57_arm64.tar.gzroot@localhost:/usr/local/mysql# lltotal 20Mdrwxr-xr-x. 2 root root 4.0K Feb 19 15:10 mysql57_arm64-rw-r--r--. 1 root root 20M Jun 5 2020 mysql57_arm64.tar.gz
2. 进入解压后的目录,查看安装文件
root@localhost:/usr/local/mysql# pwd/usr/local/mysqlroot@localhost:/usr/local/mysql# cd mysql57_arm64root@localhost:/usr/local/mysql/mysql57_arm64#root@localhost:/usr/local/mysql/mysql57_arm64# lltotal 20M-rw-r--r--. 1 root root 830K Jun 5 2020 libmysqlclient20_5.7.25-1_arm64.deb-rw-r--r--. 1 root root 2.2M Jun 5 2020 mysql-client-5.7_5.7.25-1_arm64.deb-rw-r--r--. 1 root root 6.4M Jun 5 2020 mysql-client-core-5.7_5.7.25-1_arm64.deb-rw-r--r--. 1 root root 7.2K Jun 5 2020 mysql-common_5.8+1.0.5_all.deb-rw-r--r--. 1 root root 3.1M Jun 5 2020 mysql-server-5.7_5.7.25-1_arm64.deb-rw-r--r--. 1 root root 7.1M Jun 5 2020 mysql-server-core-5.7_5.7.25-1_arm64.debroot@localhost:/usr/local/mysql/mysql57_arm64#
如上所示,这一堆以.deb结尾的文件均为mysql5.7的安装文件。需要注意的是这些文件之间存在互相依赖关系,所以必须按照指定顺序依次挨个进行安装,否则会报错 并提示缺少各种依赖等问题。(所以在Linux中安装软件时,如果条件允许就尽量选择安装二进制解压即可用的免安装版)
3. 执行安装命令,安装mysql5.7
(命令: sudo apt install ./*.deb )
root@localhost:/usr/local/mysql/mysql57_arm64# pwd/usr/local/mysql/mysql57_arm64root@localhost:/usr/local/mysql/mysql57_arm64#root@localhost:/usr/local/mysql/mysql57_arm64# lltotal 20M-rw-r--r--. 1 root root 830K Jun 5 2020 libmysqlclient20_5.7.25-1_arm64.deb-rw-r--r--. 1 root root 2.2M Jun 5 2020 mysql-client-5.7_5.7.25-1_arm64.deb-rw-r--r--. 1 root root 6.4M Jun 5 2020 mysql-client-core-5.7_5.7.25-1_arm64.deb-rw-r--r--. 1 root root 7.2K Jun 5 2020 mysql-common_5.8+1.0.5_all.deb-rw-r--r--. 1 root root 3.1M Jun 5 2020 mysql-server-5.7_5.7.25-1_arm64.deb-rw-r--r--. 1 root root 7.1M Jun 5 2020 mysql-server-core-5.7_5.7.25-1_arm64.debroot@localhost:/usr/local/mysql/mysql57_arm64# root@localhost:/usr/local/mysql/mysql57_arm64# sudo apt install ./*.deb
4. 等待MySQL安装完成,检查mysql版本
(命令: mysql -V )
root@localhost:/usr/local/mysql/mysql57_arm64#root@localhost:/usr/local/mysql/mysql57_arm64# pwd/usr/local/mysql/mysql57_arm64root@localhost:/usr/local/mysql/mysql57_arm64# mysql -Vmysql Ver 14.14 Distrib 5.7.25, for Linux (aarch64) using EditLine wrapperroot@localhost:/usr/local/mysql/mysql57_arm64#
#至此,说明mysql5.7已安装成功!
二、mysql5.7数据库密码设置与修改
通过上一步,我们已经顺利完成了arm/aarch64架构的Debian Linux系统中mysql5.7的安装。接下来就需要对安装完成的mysql数据库进行:密码初始化、修改密码、查看/修改数据库配置文件,以及查看/启动/关闭 mysql服务等操作。
1.初始密码的设置
mysql5.7安装完成后,root用户密码默认为空。可以通过以下几步确认:
第一步:查看mysql服务状态root@localhost:/home# service mysql status[info] MySQL is stopped..root@localhost:/home# 第二步:启动mysql服务root@localhost:/home# service mysql start[....] Starting MySQL database server: mysqldsu: warning: cannot change directory to /nonexistent: No such file or directory[ ok . . ..root@localhost:/home# 第三步:检查mysql5.7的root密码root@localhost:/home# mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9Server version: 5.7.25-1 (Debian)Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> mysql>
如上所示,输入mysql回车后显示了mysql的相关信息,表示已登录到mysql服务器了,也就表示初始/默认密码为空。所以需要设置一下root用户密码。
mysql5.7中设置密码有以下多种设置方法(可能还有其他方法):
方法一:使用 mysqladmin 命令修改密码(不用加 -p 参数)# 语法: mysqladmin -u用户名 -p旧密码 password 新密码mysql> mysql> mysqladmin -uroot password xxxxx(新密码);mysql> flush privileges; //刷新 使修改密码操作立即生效,切记不能少!mysql> quit; //退出mysql登录状态。还可以使用 exit命令 退出方法二:mysql> update user set authentication_string=PASSWORD("你的密码") where user='root'; //更改root用户密码mysql> flush privileges; //切记不能少!mysql> quit; 方法三:mysql> alter user 'root'@'localhost' identified by '你的密码';mysql> flush privileges; //切记不能少!mysql> quit; 方法四:mysql> set PASSWORD for root@localhost=PASSWORD('你的密码');mysql> flush privileges; //切记不能少!mysql> quit;
温馨提示:
1.mysql8.x和mysql5.7.X修改密码的指令不一样了,请注意区别。
2.修改完root密码之后,一定记得执行flush privileges操作 以使修改立即生效(网上说必须得重启mysql服务才能生效,经本人亲自尝试 至少mysql5.7不需要重启服务但是修改完一定要执行一下flush privileges)。
3.修改成功后,即可通过执行:mysql -uroot -p 回车,输入密码,回车 进行登录咯!
2.修改数据库密码
对mysql数据库进行 密码修改操作类似于设置初始密码过程,所以命令还是上面的命令,只需稍作修改即可。
方法一:使用 mysqladmin 命令修改密码(不用加 -p 参数)mysql> mysql> mysqladmin -uroot password '新的密码'; //清空root用户密码mysql> flush privileges; //切记不能少!mysql> quit; 方法二:mysql> update user set authentication_string=PASSWORD("新的密码") where user='root'; mysql> flush privileges; //切记不能少!mysql> quit; 方法三:mysql> alter user 'root'@'localhost' identified by '新的密码';mysql> flush privileges; //切记不能少!mysql> quit; 方法四:mysql> set PASSWORD for root@localhost=PASSWORD('新的密码');mysql> flush privileges; //切记不能少!mysql> quit;
三、设置mysql数据库允许其他用户远程连接
不管Windows平台还是Linux环境,安装完MySQL后默认只允许本地localhost用户进行连接(即只能使用127.0.0.1/localhost连接访问)。所以如果其他用户想要使用宿主主机IP远程连接宿主机的MySQL服务器,就必须对宿主机上的mysql进行有关设置。
1.配置允许远程访问
要允许其他用户远程访问服务器上的mysql,首先第一步要做的就是 修改远程mysql的配置文件,取消bind-addresss属性的默认值127.0.0.1,以允许其他用户进行连接!
第一步:进入mysql目录 ( cd /etc/mysql/)root@localhost:/home# pwd/homeroot@localhost:/home# root@localhost:/home# cd /etc/mysql/root@localhost:/etc/mysql# 第二步:查看mysql的真实/有效的配置文件位置 ( grep -rn "skip-networking" *)【注意:与Windows环境下mysql配置文件(以.ini结尾)不同,Linux中mysql配置文件是以.cnf结尾。而且安装后可能会存在多个.cnf配置文件,所以需要找出有效的配置文件所在位置 并对其进行修改】root@localhost:/etc/mysql# root@localhost:/etc/mysql# grep -rn "skip-networking" *mysql.conf.d/mysqld.cnf:41:# Instead of skip-networking the default is now to listen only onmysql.conf.d/mysqld.cnf.bak:41:# Instead of skip-networking the default is now to listen only onroot@localhost:/etc/mysql# 第三步:修改mysql配置文件 ( vim /etc/mysql/mysql.conf.d/mysqld.cnf )【如上可知,真实的mysql配置文件路径为:/etc/mysq/mysql.conf.d/mysqld.cnf】root@localhost:/etc/mysql# root@localhost:/etc/mysql# cd mysql.conf.d/root@localhost:/etc/mysql/mysql.conf.d# lltotal 12K-rw-r--r--. 1 root root 3.0K Feb 19 16:47 mysqld.cnf-rw-r--r--. 1 root root 3.0K Feb 20 10:46 mysqld.cnf.bak-rw-r--r--. 1 root root 21 Jan 22 2019 mysqld_safe_syslog.cnfroot@localhost:/etc/mysql/mysql.conf.d# root@localhost:/etc/mysql/mysql.conf.d# vim mysqld.cnf第四步:注释掉配置文件中 bin-address属性: # bind-address=127.0.0.1
温馨提示:
…如果不修改配置文件的bind-addresss属性,远程连接时 可能会出现如下图所示报错:
2.配置远程访问用户(设置或授权访问用户)
通过上一步操作,服务器上的MySQL已经可被远程连接了,但是光这样还不行,还必须对访问的所有用户进行设置或授权,之后才可以正常远程连接。
第一步:通过root用户登录mysqlroot@localhost:/etc/mysql/mysql.conf.d# mysql -Vmysql Ver 14.14 Distrib 5.7.25, for Linux (aarch64) using EditLine wrapperroot@localhost:/etc/mysql/mysql.conf.d# root@localhost:/etc/mysql/mysql.conf.d# mysql -uroot -pEnter password: //输入密码后回车Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 5Server version: 5.7.25-1 (Debian)Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 第二步:进行远程连接的授权 【 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '设置远程用户连接时的密码' WITH GRANT OPTION; 】mysql> mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'test666@!#$%' WITH GRANT OPTION;Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> flush privileges; Query OK, 0 rows affected (0.04 sec)mysql> exitBye第三步:重启mysql服务root@localhost:/etc/mysql/mysql.conf.d# service mysql restart[ ok ] Stopping MySQL database server: mysqld.[....] Starting MySQL database server: mysqldsu: warning: cannot change directory to /nonexistent: No such file or directory[ ok . . . ..root@localhost:/etc/mysql/mysql.conf.d#
温馨提示:
…如果不设置或授权访问用户操作,远程连接时 可能会出现如下图所示报错:
补充知识—— 对授权命令的解析:
GRANT privileges ON databasename.tablename TO ‘username’@‘host’
- 1.语法及解释:
-privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
-databasename:数据库名
-tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用 " * "表示。如:
GRANT SELECT, INSERT ON test.user TO ‘testUser’@‘%’ 可表示为: GRANT ALL ON * .* TO ‘testUser’@‘%’
-username:[创建的]用户名
-host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户被任意远程用户登陆,可以使用通配符%- 2.注意:
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO ‘username’@‘host’ WITH GRANT OPTION;
3.测试远程连接
通过上面两步的设置操作,MySQL5.7远程连接功能已设置完毕。接下来测试远程连接效果
第一步: 查看修改后的数据表
----授权/修改前:mysql> select user,host from mysql.user;+------------------+-----------+| user | host |+------------------+-----------+| debian-sys-maint | localhost || mysql.session | localhost || mysql.sys | localhost || root | localhost |+------------------+-----------+5 rows in set (0.01 sec)mysql> ----授权/修改后:mysql> select user,host from mysql.user;+------------------+-----------+| user | host |+------------------+-----------+| root | % || debian-sys-maint | localhost || mysql.session | localhost || mysql.sys | localhost || root | localhost |+------------------+-----------+5 rows in set (0.01 sec)mysql>
解析:
通过上面表信息可知,设置后mysql.user表中已多了一条记录。其中:Host列localhost 值表示本地用户;%是通配符,表示该用户可以被任意远程用户登陆。
第二步: 使用数据库连接工具 测试远程连接
到此为止,改造后的Linux系统中成功地完成了mysql5.7的安装与相关配置!代表我们距离部署项目又近了一步,也代表着距离成功又近了一步。加油!
四、MySQL数据库中用户的创建与授权
使用root账号/用户 登录到Linux上的MySQL服务器,创建用户并授权。
root@localhost:/home# mysql -u root -pmysql> user mysql;mysql>create user "haloan"@"host" identified by "haloan123!!!";mysql>grant select on *.* to haloan@'%' identified by 'haloan123!!!' with grant option;mysql>flush privileges;mysql>exit;
五、创建和初始化待部署项目所需数据库
安装并配置完mysql5.7数据库之后,就可以根据我们的项目/应用 创建对应的mysql数据库并完成数据表的初始化,从而为后面部署项目做好准备。
1.远程连接到Linux服务器的mysql数据库
2.创建/初始化项目数据库
通过远程登录到Linux服务器上MySQL5.7之后,便可以正式开始创建项目数据库进行使用了。使用
Navicat工具有以下三种常见方法来创建一个数据库
:
方法一: 右键直接创建
方法二: 通过运行外部.sql数据库文件创建
.
方法三: 通过Navicat的"数据传输" 功能,将一个数据源中的数据库传输到目标数据源的数据库中
.
总结
以上就是今天要分享的内容:安卓手机改造成Linux服务器后 mysql5.7的安装与相关配置。
下一篇将为大家分享的是: 改造后的安卓Linux服务器中 Redis 的安装和相关配置。内容持续更新中,欢迎大家的阅读,同时有不对的地方欢迎指正。
来源地址:https://blog.csdn.net/qq_40875195/article/details/129215341
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341