Ubuntu 20.04LTS 系统离线安装5.7.44mysql数据库

Ubuntu 20.04LTS 系统离线安装5.7.44mysql数据库

环境

操作系统:Ubuntu 20.04.4 LTS
数据库:MySQL 5.7.34
内核版本:x86_64(amd)
网络情况:内网服务器,无法访问互联网资源

查看linux系统内核版本

bash 复制代码
uname -a

下载 MySQL 5.7.44 包

在一台有互联网连接的计算机上,访问
MySQL的下载页面

这里我遇到了一个小问题,就是官方没有专门的Ubuntu 20.04LTS系统的mysql,我不知道该使用哪个。
下面是我使用ai软件查询到的的信息。意思是linux通用版可以使用,当然也可以使用其他其他ubuntu版本或第三方版本版本的数据库,不过可能没这个版本兼容性好一些。

在你提到的 MySQL 版本中:"Linux - Generic (glibc 2.12) (x86, 64-bit)" 是适用于

Ubuntu 20.04 LTS 的版本。下面是一些选择的理由: Ubuntu 20.04 LTS 是一个64位系统:

如果你的系统是64位的(大多数现代计算机都是64位),那么你应该选择 "x86, 64-bit" 版本。 glibc版本兼容: Ubuntu

20.04 使用的是较新的 glibc 版本,所以选择一个通用的、基于 glibc 2.12 的版本是合适的,因为它将在大多数情况下与较新的 glibc 兼容。

安装

解压

bash 复制代码
tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz

移动到指定安装位置(我的:/home 下)

bash 复制代码
sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /home

将文件重命名为mysql

bash 复制代码
 mv mysql-5.7.44-linux-glibc2.12-x86_64/ mysql/

创建文件夹

bash 复制代码
sudo mkdir -p /home/mysql/data
sudo mkdir -p /home/mysql/log

创建用户和组:

bash 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

配置权限:

bash 复制代码
sudo chown -R mysql:mysql /home/mysql
sudo chown -R mysql:mysql /home/mysql/data
sudo chown -R mysql:mysql /home/mysql/log
sudo chmod -R 755 /home/mysql/data
sudo chmod -R 755 /home/mysql/log

3.创建my.cnf文件

添加了一些常用的配置,参数含义不理解的将配置文件放到ai里解读一下即可。

bash 复制代码
vim /etc/my.cnf

添加内容

bash 复制代码
[mysqld]
bind-address=0.0.0.0
#端口号
port=3309
user=mysql
#mysql所在目录
basedir=/home/mysql
#数据的存放目录
datadir=/home/mysql/data
#mysql.sock 存放位置
socket=/tmp/mysql.sock
#错误日志存放位置
log-error=/home/mysql/log/mysql.err
#pid 存放位置
pid-file=/home/mysql/mysql.pid
#character config
character_set_server=utf8mb4
skip-name-resolve = 0
skip-grant-tables #这个是因为忘记root密码加的
symbolic-links=0

4.初始化数据库:

bash 复制代码
#切换到对应目录
cd /home/mysql/bin
#执行初始化命令,如果不是root账号,一定要加sudo
sudo ./mysqld --defaults-file=/etc/my.cnf --basedir=/home/mysql/ --datadir=/home/mysql/data/ --initialize

5.查看mysql密码

bash 复制代码
cat /home/mysql/log/mysql.err

6.开启服务

bash 复制代码
#设置开机自启动
sudo systemctl enable mysql
bash 复制代码
#启动服务
sudo systemctl start mysql

标题检查服务是否启动成功

为什么要检查是否成功呢,因为我失败了,因为我使用的是小权限账号,因为缺乏权限遇到了很多错误。

ubuntu系统检查服务状态

bash 复制代码
sudo systemctl status mysql

查看mysql监听的ip端口

bash 复制代码
sudo ss -tlnp | grep mysql

检查配置文件是否存在

ls -l /etc/mysql/my.cnf在这里插入代码片

查看数据库版本

bash 复制代码
mysql -v

遇到的问题

mysql服务已经运行成功,但是mysql命令不被识别

检查环境变量

bash 复制代码
echo $PATH

设置环境变量: 你可能想要将 MySQL 的 bin 目录添加到 PATH 环境变量中,以便能够在任何地方使用 MySQL 命令:

bash 复制代码
echo 'export PATH=/home/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc 

然后msyql命令可以使用了,但是海报一个错误

bash 复制代码
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

从网上没搜到,然后直接用6代替5使用了

创建一个符号链接,使得 libncurses.so.5 指向 libncurses.so.6:

bash 复制代码
sudo ln -s /lib/x86_64-linux-gnu/libncurses.so.6 /lib/x86_64-linux-gnu/libncurses.so.5

我没有验证,继续使用mysql命令,又报其他依赖缺失,不过这个依赖可以下载到

bash 复制代码
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

用在 AMD64 上 的下载页面libtinfo5_6.2-0ubuntu2.1_amd64.deb

上传上安装就可以了

bash 复制代码
sudo gdebi -n /home/hetong/*.deb

登陆&修改密码&远程访问

登陆 初始化密码去/home/mysql/log/err.log 内查

sql 复制代码
mysql -uroot -p -P3309

设置密码

sql 复制代码
alter user 'root'@'localhost' identified by 'password';

刷新

sql 复制代码
flush privileges;

切换到mysql 库

sql 复制代码
use mysql;

设置远程访问

sql 复制代码
update user set host='%' where user = 'root';

刷新

sql 复制代码
flush privileges;

参考博客:Linux 之 mysql-5.7.44 下载/安装(离线)

相关推荐
霖霖总总几秒前
[Redis小技巧7]Redis Bitmaps 深度解析:从原理到用户签到实战
数据库·redis·缓存
Keanu-1 分钟前
Redis 安装与部署
数据库·redis
我爱小疯喵喵16 分钟前
2 常用数据库命令行操作
数据库
七夜zippoe16 分钟前
Docker容器化实战:核心概念、镜像制作与多阶段构建全解析
java·jvm·数据库·docker·oracle·容器化
跟着珅聪学java22 分钟前
Electron 精美菜单设计
运维·前端·数据库
xcLeigh41 分钟前
Oracle 替换工程实践深度解析:金仓数据库破解 PL/SQL 兼容与跨交易日数据一致性核心难题
数据库·sql·oracle·数据迁移·金仓·kingbasees
软件开发技术深度爱好者43 分钟前
基于 Python tkinter 开发的SQLite数据库可视化小工具
数据库·sqlite
泯仲43 分钟前
从零起步学习MySQL 第四章:DQL查询全解析
数据库·mysql
原来是猿44 分钟前
MYSQL【库操作】
数据库·mysql
皮皮哎哟44 分钟前
嵌入式数据库从入门到精通
linux·数据库·sqlite3·sqlite3_open