银河麒麟系统及Linux下安装MySQL8.0详细教程,跟着操作百分百安装成功!

之前在Linux下安装过几次MySQL,后来MySQL升级到8.0以后,安装变的很繁琐,产生的问题也乱七八糟,有时候网上还找不到解决的办法,这次记录一下安装的步骤,也给大家做个参考。

这次使用的是国产银河麒麟Linux系统是arm架构64位的,安装步骤与Centos Linux系统其实没啥差别。

1.查询Linux版本与架构 

首先我们需要先确定Linux系统的架构,aarch64表示架构为arm架构64位,x86_64表示为x86架构64位,根据架构和gblic版本不同,需要准备的MySQL安装包也有差别

#查看linux的架构模式
uname -m


#查看gblic版本
ldd --version

2.准备MySQL安装包

从第一步知道自己的系统架构和gblic版本后,下面需要到MySQL官网下载安装包,我用的是MySQL8.0.42,官网:https://dev.mysql.com/downloads/mysql/,安装包具体信息如下图或者网盘获取,要看清楚自己需要的版本

mysql安装包 链接:https://pan.baidu.com/s/1xaSZ_rL-_IS1QFbpHCHmuA 
提取码:swh2

MySQL压缩包的区别说明

  1. mysql-8.0.42-linux-glibc2.28-aarch64.tar.xz主程序压缩包,这个在tar基础上经过压缩算法进一步压缩的压缩包,体积比普通tar包小,包含了MySQL 8.0.42的核心二进制文件(如mysqldmysql客户端等),适用于生产环境部署‌。
  2. mysql-test-8.0.42-linux-glibc2.28-aarch64.tar.xz测试套件压缩包,仅包含MySQL的测试工具和脚本(如测试框架、用例),需配合主程序包使用‌。
  3. mysql-8.0.42-linux-glibc2.28-aarch64.tar主程序压缩包,普通tar包,内容与第一个相同,只是未经过算法压缩,体积更大一点。

3.安装环境检查

选择第一个mysql-8.0.42-linux-glibc2.28-aarch64.tar.xz点击下载,保存到任意文件夹,接着打开服务器,首先检查服务器之前有没有安装过mysql或者maridb相关的服务

# 1.查看有没有以rpm安装的mysql 在任意位置执行这个命令都可以
rpm -qa | grep -i mysql
# 执行完如果有返回值 执行下面的命令 
rpm -ev 复制上个命令返回的结果
#如果执行rpm -ev 命令报错就加上--nodeps
rpm -ev --nodeps 上个命令返回的结果

举例如果执行rpm -qa | grep -i mysql命令返回mysql-libs-5.5.68-1.el7.x86_64
那么就执行rpm -ev mysql-libs-5.5.68-1.el7.x86_64 如果执行这条命令报错那么就执行
rpm -ev --nodeps mysql-libs-5.5.68-1.el7.x86_64
我的没有返回值所以就没截图举例


2.上面的命令执行完后,接着删除mysql相关目录
# 获取mysql相关目录 任意位置执行这个命令都可以
find / -name mysql
#上面的命令有返回值的话执行 删除所有相关目录,-rf:表示不询问直接删除文件 把所有返回的目录删完 
rm -rf 返回的目录 
#再执行一次 验证有没有删干净
find / -name mysql

3.删除my.cnf文件
#首先查找my.cnf文件存在哪个目录
find / -name my.cnf
#删除 my.cnf,如果上条命令有返回的目录执行下面的命令,把所有的my.cnf删完,如果没有返回就不用执行了
rm -rf 返回的my.cnf所在的目录

4.查找存不存在mariadb相关的文件
yum list installed | grep mariadb
如果查找出来存在相关的文件 执行 直到把所有的都删完
yum remove xxx(指刚刚查出来的maridb的文件名字)

删完后再执行一次yum list installed | grep mariadb如果没有返回值表示删干净了

如果以前设置了mysql的环境变量需要删除环境变量

#查看并编辑环境变量 
#进入vim后按i进行编辑 编辑完后 按esc 再按shift+: 输入wq保存并退出,输入!q表示强制退出不保存
vim /etc/profile
# 删除环境变量后,刷新环境
source /etc/profile

查看是否卸载干净,如果没有返回值表示卸载干净了

rpm -qa|grep -i mysql

4.上传MySQL安装包

接着将刚刚下载好的mysql压缩包传到服务器的opt目录下,也可以通过使用wget命令下载,这里就不演示了

将压缩包传过来后,我们解压缩这个压缩包,解压过程需要等一会儿,一直到再次出现光标闪动才算解压完成,在opt目录下执行

tar -xvf mysql-8.0.42-linux-glibc2.28-aarch64.tar.xz

使用 ll 命令查看当前目录,可以看见多出一个mysql-8.0.42-linux-glibc2.28-aarch64目录

由于mysql-8.0.42-linux-glibc2.28-aarch64目录名称太长,将这个目录重命名,在opt目录下执行

mv mysql-8.0.42-linux-glibc2.28-aarch64/ mysql-8.0.42

到这里可以将msyql的压缩包删掉了,在opt目录下执行

rm -rf mysql-8.0.42-linux-glibc2.28-aarch64.tar.xz 

5.创建MySQL需要的目录及授权

接下来进入mysql-8.0.42目录下,执行 ll 命令并查看mysql8.0.42都包含哪些文件

cd mysql-8.0.42/

 然后创建三个新文件夹,在mysql-8.0.42目录下执行

# 数据存储
sudo mkdir data 
# 日志存储  
sudo mkdir log   
# 临时文件 
sudo mkdir tmp    

接着新增用户组

sudo groupadd mysql

新增组用户

sudo useradd -g mysql mysql

 用户授权,后面的路径应该为你自己实际安装的路径,如果你是跟着我这个步骤做的就不用改了

sudo chown -R mysql:mysql /opt/mysql-8.0.42/

给mysql8.0.42目录下所有目录授权,后面的路径应该为你自己实际安装的路径,如果你是跟着我这个步骤做的就不用改了

chmod 777 /opt/mysql-8.0.42

6.配置mysql环境变量

配置MySQL路径到环境变量

vi /etc/profile

在profile文件最后增加下面的配置,路径应该为你自己实际安装的mysql路径,如果跟着我做的话就不用改了,增加后记得保存退出。(vi/vim编辑器的部分命令:i 编辑,esc退出编辑 shift+: 输入wq保存并退出)

export PATH=$PATH:/opt/mysql-8.0.42/bin

 重新加载环境变量。

source /etc/profile

7.编写MySQL配置文件

一般情况下,系统中是不含这个文件的,除非之前安装过有遗留。

vi /etc/my.cnf  
# 正常情况下是没有这个文件的,执行保存之后会自动创建

配置文件内容如下(路径记得改为自己的,socket = /tmp/mysql.sock路径不用改),将下面的配置文件粘贴到my.cnf中保存并退出。

[mysqld]
#允许所有 IP 连接(0.0.0.0 表示不限制)‌
bind-address = 0.0.0.0

#自定义 MySQL 服务端口(默认 3306)
port = 3306

#MySQL 安装目录。
basedir = /opt/mysql-8.0.42

#数据文件存储路径
datadir = /opt/mysql-8.0.42/data

#本地连接使用的 Unix 套接字文件。
socket = /tmp/mysql.sock

#错误日志路径(排查故障关键文件)
log-error = /opt/mysql-8.0.42/log/error.log

#进程 ID 文件路径。
pid-file = /run/mysqld/mysql.pid
#pid-file = /opt/mysql-8.0.42/data/mysql.pid

#临时文件目录‌
tmpdir = /opt/mysql-8.0.42/tmp

#表名存储为小写,比较时不区分大小写。
lower_case_table_names = 1
#表名存储为创建时的大小写,但比较时转换为小写‌
#lower_case_table_names = 2


#默认引擎(推荐 InnoDB)
default-storage-engine=INNODB

#InnoDB 缓冲池大小
innodb_buffer_pool_size = 5G

# 服务端默认字符集
character-set-server = utf8mb4      
# 默认排序规则
collation-server = utf8mb4_unicode_ci  
# 每个新连接初始化时执行的SQL
init_connect = 'SET NAMES utf8mb4'  

#允许的最大数据包大小(避免大数据插入/导出失败)
max_allowed_packet=100M

#使用传统密码认证(兼容旧版客户端)‌
default-authentication-plugin = mysql_native_password

8.初始化数据库

一定要在mysql安装目录下的bin目录下执行,路径换成你自己的路径,我的安装路径在

/opt/mysql-8.0.42,所以要在/opt/mysql-8.0.42/bin下执行,你们要根据自己的路径去执行。

./mysqld --initialize --user=mysql --datadir=/opt/mysql-8.0.42/data --basedir=/opt/mysql-8.0.42

执行完上面的命令,会输出几行日志其中包含了初始化随机生成的密码,如下图红框中,将这个临时密码复制保存起来,一会儿要用到。

如果执行完初始化命令没有输出日志,或者忘了保存临时密码了,可以去日志文件中查看,首先进入到一开始创建的log目录中

执行命令,输出末尾500行日志,可以看到日志中输出输出了临时密码,将这个密码保存起来就行

tail -n 500 error.log

 9.初始化msyql服务

必须在mysql的安装目录下执行

sudo cp -a ./support-files/mysql.server /etc/init.d/mysql
 
sudo chmod +x /etc/init.d/mysql
 
sudo chkconfig --add mysql

指令作用如下

  1. cp -a ./support-files/mysql.server /etc/init.d/mysql:这条指令用于将MySQL服务器的启动脚本mysql.server从MySQL安装目录下的./support-files文件夹复制到系统的服务管理目录/etc/init.d,以便可以使用系统服务管理工具来控制MySQL服务。
  2. chmod +x /etc/init.d/mysql:这条指令用于给复制到/etc/init.d目录下的mysql脚本文件添加执行权限,确保它能够被系统调用执行启动、停止等操作。
  3. chkconfig --add mysql:这条指令用于将MySQL服务添加到系统服务的管理系统中,chkconfig是Red Hat系列Linux系统(如CentOS、RHEL)中用于管理服务的命令,--add选项表示添加一个新的服务。执行后,MySQL服务将能够通过service命令或systemctl(在使用systemd的系统上)进行启动、停止和重启

查看是否成功,如过出现如图所示输出则表示成功了

chkconfig --list mysql

10.启动mysql 

执行下面的命令

sudo service mysql start

 启动成功

 11.修改初始化密码

进入mysql安装目录的bin目录,执行

./mysql -uroot -p

输入刚刚让你保存的临时密码,输入后是不显示的,所以只需要输入或者粘贴一次就行,回车登录mysql成功。

 接着执行下面的命令,单引号中是你设置的新密码,我设置成123456


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

 这样就修改成功了,可以退出mysql重新登陆试一下。输入exit退出,再次执行登录命令,登录成功

./mysql -uroot -p123456

 12.配置Linux 系统服务工具,使MySQL可以用systemctl命令启动

因为安装mysql采用的是自己下载压缩包,或者传输压缩包的方式,并没有使用rpm或yum方式安装,是无法使用systemctl命令启动的,如果想使用systemctl start mysql 启动MySQL服务,需要配置以下内容。

首先查看系统存不存在mysql.service

find / -name mysql.service

如果之前没有安装过mysql,应该不存在的,我是装好了所以才存在,不论存不存在这个文件,执行下面的命令,不存在这个文件的执行完会打开一个空的文本,存在的会打开这个文本。(vi/vim编辑器的部分命令:i 编辑,esc退出编辑 shift+: 输入wq保存并退出)

vi /etc/systemd/system/mysql.service

不存在这个文本的,将下面的配置粘贴进去,之前存在的可以看看配置有没有区别,或者直接覆盖掉之前的文本。注意路径要换成自己msyql安装的路径,尤其是pid,pid要与前面my.cnf中的配置的路径保持一致否则会出错,一般情况下,pid路径就设置为/run/mysqld/mysql.pid,不改动,其他的路径要保证和自己安装的mysql路径一样。

[Unit]
#描述服务为MySQL服务器‌
Description=MySQL Server
#指定在网络服务启动后再启动MySQL服务‌
After=network.target

[Service]
#指定服务运行用户为mysql‌
User=mysql
#指定服务运行用户组为mysql‌
Group=mysql
#定义服务类型为simple(默认类型)‌
Type=simple
#指定PID文件路径‌ 这个不改动
PIDFile=/run/mysqld/mysql.pid
#主启动命令,指定MySQL二进制文件和配置文件路径‌ 你自己的路径
ExecStart=/opt/mysql-8.0.42/bin/mysqld --defaults-file=/etc/my.cnf
#停止服务时执行的命令‌ 你自己的路径 这个用户与密码是你自己的
ExecStop=/opt/mysql-8.0.42/bin/mysqladmin -uroot -p123456 shutdown
#设置服务在异常退出时自动重启‌
Restart=on-failure
#禁用私有临时目录功能‌
PrivateTmp=false
#设置启动超时时间为300秒‌
TimeoutStartSec=300
#设置停止超时时间为30秒‌
TimeoutStopSec=30
#设置服务重启间隔为5秒‌
RestartSec=5s

[Install]
#指定服务所属运行级别为多用户模式‌
WantedBy=multi-user.target

 重载配置

systemctl daemon-reload

 测试是否可以使用systemctl停止

systemctl stop mysql

 启动

systemctl start mysql

查看状态 启动后查看状态为 active(runing)表示启动成功

systemctl status mysql

 到此汇总一下启动MySQL的几种方式

汇总一下启动mysql的几个方式,前提是按照步骤一直做到这一步。

1.进入mysql-8.0.42的support-files目录下执行命令./mysql.server start启动,执行./mysql.server stop停止

2.进入mysql-8.0.42的bin目录下执行命令./mysqld_safe & 启动

执行../support-files/mysql.server stop 停止

3.在任意目录下执行 sudo service mysql start启动,执行sudo service mysql stop停止 

4.任意目录下执行 systemctl start mysql启动,执行systemctl stop mysql停止

13.远程连接

 启动MySQL服务,登录mysql客户端,依次执行如下命令

mysql> use mysql;
mysql> update user set host='%' where user='root' and host='localhost';
mysql> flush privileges;

执行完毕后,打开navicat,输入自己服务器的地址,mysql的用户名和密码,测试连接成功。

到此linux下安装mysql8.0.42结束。 如果你跟着做完了,并且远程连接成功了,那就点个赞或收藏吧!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值