文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【Linux下离线安装MySQL】

2023-09-18 07:21

关注

Linux下离线安装MySQL

最近在学习数据库,希望创建一个和实际开发环境比较接近的场景。因此,我考虑在WINDOWS系统下创建一个开发的客户端,在VMware下装载的Ubuntu上部署服务器,在此场景下进行开发学习。在Ubuntu下载MySQL文件,离线安装MySQL,由于对于Linux系统的操作并不熟悉,所以安装花费了较长时间,写下这篇blog记录安装过程,希望能够供大家参考。
Linux系统:Ubuntu 22.04.1 LTS
MySQL 版本:MySQL 8.0.33

1.MySQL离线安装包下载

百度搜索MySQL
MySQL官网
点击进入官网或者用下面的链接
MySQL官网链接: https://www.mysql.com/.
进入官网,点击DOWNLOADS
在这里插入图片描述
鼠标滚轮往下,最下面一排不显眼的字,点击下载免费的社区版
在这里插入图片描述
进入下一个页面之后,由于我们下载的是Linux版本,直接点击MySQL Community Server就行
在这里插入图片描述
点击DOWNLOAD下载对应版本的MySQL
在这里插入图片描述
注意:一开始我没有注意到这里的选择,所以我选择的是默认情况下的Linux-Generic,操作系统选择还有一个Ubuntu Linux版本的,后面验证过了Linux-Generic版本的MySQL也可以在Ubuntu正常运行
下载之后就会得到一个压缩包文件
在这里插入图片描述

2.安装准备

接下来运行命令

tar -zxvf 你对应版本的MySQL压缩包文件名.tar.gz

将其解压
为了方便接下来的操作,将解压之后的文件夹改一个短一点的名字
运行代码

mv 旧的文件夹名 mysql

新的文件夹名字是mysql,你也可以在后面加上对应的版本号,不必写太长。这个文件夹名后面需要用来填写一些相关信息
运行下面的命令将该文件夹移动到/usr/local/文件夹下

sudo mv mysql /usr/local/

移动到/usr/local/

cd /usr/local/

在该目录下我们创建一个空的mysql_data文件夹用来存放MySQL的数据库,这个路径后面也需要用到
创建该文件夹运行下面命令即可

mkdir mysql_data

3.配置my.cnf文件

在准备好mysqlmysql_data文件夹之后,我们还需要配置一个my.cnf文件放在/etc/目录下
可以先打开/etc/目录

cd /etc/

该目录下一开始是没有my.cnf文件的,需要我们手动创建,使用管理员权限创建一个空的my.cnf文件,并通过vi命令进行编辑

sudo touch my.cnfsudo vi my.cnf

然后粘贴以下的信息

[client]port=3306 #服务器的通信端口socket=/tmp/mysql.sock #sock文件这个会自动创建,不用大家手动创建,但是需要指定目录#这里可以在/tmp/目录下再创建一个mysql文件夹将sock文件保存在里面,那这部分可以改成#socket=/tmp/mysql/mysql.sock#这里我偷懒了,推荐利用注释里的方式[mysqld]port=3306user=mysql #下文将会有说明socket=/tmp/mysql.sock #记得和上面对应basedir=/usr/local/mysql #之前已经准备好的mysql文件,解压改名之后得到的文件夹datadir=/usr/local/mysql_data #这是自己创建的空的mysql_data文件夹

这样,重要的东西就已经准备好了
接下来创建Linux系统中的用户组与用户,用来实现访问控制

groupadd mysql #创建mysql的用户组useradd -g mysql mysql #在用户组下创建用户,注意这里应该是和my.cnf中的user对应

4.启动mysql.server

到了比较重要的部分了,启动mysql.server之后我们就可以正常使用MySQL了
运行以下命令进行初始化操作

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql_data/#大家注意文件夹路径的对应关系即可,这些文件都是我们前文中准备好的

执行命令成功之后就会得到一个随机密码
!!记得把这个随机密码复制粘贴一下,后面登录需要用到!!
在这里插入图片描述
(图片来自其他博主,我之前的运行图片忘记保存了。。。执行结果相同,密码是随机的)
接下来赋予创建的用户处理之前提到的sock文件的权限

chown -R mysql:mysql /tmp/ #因为我的sock文件是设置为储存在/tmp/文件夹下了#假设你在/tmp/文件夹下创建了一个空的mysql文件夹储存sock文件,那么这里你可以写为#chown -R mysql:mysql /tmp/mysql/#注释是推荐的方式,记得位置和my.cnf里面的配置一样ln -s /usr/local/mysql/bin/mysql /usr/bin#软链接,作用大家可以自行百度,我自己的理解是类似快捷方式或者WINDOWS下环境变量的作用

终于开始启用mysql.server服务了,首先配置服务,再运行服务

sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql #配置服务到系统中,文件位置是对应的sudo /usr/local/mysql/support-files/mysql.server start#sudo即管理员权限启动服务,否则可能又是访问被拒绝

如果报错,大家可以运行下面的命令检查报错信息,如果没有报错就可以跳过了

cat /usr/local/mysql_data/rainbow-virtual-machine.err#报错信息会提醒你储存在哪一个日志文件内的#比如我的就是mysql_data/rainbow-virtual-machine.err这个文件#大家可以根据相应的报错寻找对应的解决方案#在后面我将会分享我遇到的一些错误和解决方式

------------------------------------------------------------------------------------------------------------
可以检查一下服务有没有成功
运行命令

service mysql status#检查mysql服务的启动状态

比如我的之前是
在这里插入图片描述
这说明服务已经配置到系统中了,但是没有激活
可以用下面的命令激活一下

systemctl start mysql 

激活之后,再查看一下服务启动的状态如下
在这里插入图片描述

这里显示就是已激活了
只要激活成功,那就表示我们安装成功了!!!!!!!!

5.测试安装结果

键入命令测试MySQL服务是否安装成功

mysql -u root -p#表示使用root用户登录,-p表示需要输入密码了#一开始的密码是之前随机生成的那个,记得粘贴一下

在这里插入图片描述
登录成功。
之后还需要设置自己的密码,记得在登录mysql的情况下输入下面的命令

ALTER USER 'root'@'localhost' IDENTIFIED BY '你自己更改的密码';

在这里插入图片描述
你如果不更改密码进行操作时它会报错提醒你。更改好密码之后就可以创建数据库和表了

6.设置远程访问

在登录mysql的情况下依次键入下面的命令

USE mysql; #切换到自带的mysql数据库UPDATE user SET host='%' WHERE user='root'; #修改数据库下user表的信息FLUSH PRIVILEGES; #更新权限EXIT;#SQL关键字推荐大家还是全部大写比较规范

关闭防火墙

是否需要关闭防火墙才能进行远程连接大家可以自己试验(我测试过需要关闭防火墙才行,否则会连接失败)
Ubuntu关闭防火墙命令为

sudo ufw disable

然后重启一下系统就行
更改好之后就可以远程登录root用户访问Linux下的数据库了
在WINDOWS下我使用SQLyog这款软件进行开发学习,这款SQL可视化编程工具用起来很方便,当然,你也可以直接通过cmd和安装在WINDOWS系统下安装的mysql服务进行远程访问连接,原理都是一样的,设置好ip地址和端口号就行。
以下我将使用SQLyog演示
首先通过ifconfig命令查看Linux下的ip地址
在这里插入图片描述
红线框出来的就是Linux系统的ip地址了
打开SQLyog,点击新建连接
在这里插入图片描述
需要填写的重要信息如红线框出所示,都是我们自己设置和已知的,填写完毕就可以点击测试连接了
在这里插入图片描述
跳出的信息就表示连接成功了,点击连接就可以进行后续的开发学习工作了
连接成功之后的开发界面
在这里插入图片描述
Linux下的数据库也进行了相应的更新
在这里插入图片描述
如果无法连接到数据库,一定要看数据库的mysql服务是否开启或激活!!!
如果没有设置mysql服务开机自启动,那每次开机都需要手动启用!!!

7.安装过程遇到的问题和解决方法

1. 缺少libaio文件

当时执行某一步时提醒缺少libaio的包文件,为了安装这个包找了不少解决方法。又需要更新镜像源,又需要安装包管理工具什么的
后来直接使用Ubuntu自带的apt-get命令进行安装,注意这个时候包名字需要改为liavio1,其实之前提示错误信息的时候注意到了这一点,但是包名我没有改,所以安装的时候一直提示无法定位软件包
即运行命令

sudo apt-get install liavio1 #注意包的名字多了一个1

如果大家需要更新镜像源,可以百度搜索清华镜像源网站,然后进入官网找Ubuntu点击后面的问号,就会获得下面的帮助信息,进行相应的更改就行
在这里插入图片描述
直接按照官网提示进行操作

2. 提示端口号占用
之前运行服务报错的时候提示端口占用,可能是你已经启动了一个mysql服务了,可以选择重启Linux系统,或者查看mysql的服务运行状态,停止或者重启它

3. 忘记生成的随机密码了
之前我的解决方案是首先清空我们创建的mysql_data文件夹下的所有文件,重新执行上文说明的初始化操作及其之后的操作就行,它会mysql会生成新的随机密码,记得复制粘贴就行

结语

其实很多耽误时间的操作是由于自己对于Linux的认知和熟悉程度不够所致,因为接触的少,因此不熟练。后面需要更多的实践练习加深对操作系统的理解,比如不同Linux系统下的包管理工具,不同的命令行命令等。多多借鉴其他人的文章,兼听则明,遇到困难,解决困难!
如有纰漏,希望批评指正!

参考博客

参考博客【1】: http://t.csdn.cn/fWawr.

来源地址:https://blog.csdn.net/dh15121509076/article/details/130911732

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯