MySQL——Ubuntu20使用deb安装MySQL&远程连接数据库服务器

MySQL的下载和安装

1. 下载

进入MySQL官网进行下载:MySQL官网下载地址

下载的文件默认放到Home/Downloads目录下

我这里选择了跟 系统版本及CPU架构对应 8.0.26 Ubuntu20.04 x86_64bit 版本进行了下载:mysql-server_8.0.26-1ubuntu20.04_amd64.deb-bundle.tar

不清楚自己的系统版本和CPU架构的可以通过一下指令查看:

shell 复制代码
# 查看Linux发布版本。我这里的 版本为 Ubuntu 20.04.6 LTS
lsb_release -a
# No LSB modules are available.
# Distributor ID: Ubuntu
# Description:    Ubuntu 20.04.6 LTS
# Release:        20.04
# Codename:       focal

# 查看内核版本号 和 CPU 架构。我这里的CPU架构为 x86_64
uname -a 
# Linux linyajun-Ubuntu18 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

2. 安装

将下载后的压缩文件进行解压 /usr/local/mysql 目录下,这里需要在/usr/local目录下创建一个名为mysql的目录

将目录切换到 /usr/local:

解压MySQL安装包

shell 复制代码
sudo tar xvf mysql-server_8.0.26-1ubuntu20.04_amd64.deb-bundle.tar

将解压出来的安装包依次进行安装。由于包之间有依赖关系,一定要按照顺序安装

shell 复制代码
sudo dpkg -i mysql-common_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-client-plugins_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i libmysqlclient21_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-client-core_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-client_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-client_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-server-core_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-community-server_8.0.26-1ubuntu20.04_amd64.deb
sudo dpkg -i mysql-server_8.0.26-1ubuntu20.04_amd64.deb

安装出错请看这里,没有请忽略

缺少依赖

libaio1(libaio1的deb下载链接,选择系统版本后,在跳转的页面查找下载路径)参考页面:https://pkgs.org/download/libaio1,下载完成之后进行安装。**没有缺失请忽略。**

shell 复制代码
sudo dpkg -i ./libaio1_0.3.112-5_amd64.deb

libmecab2 libmecab2的deb下载链接,选择系统版本后,在跳转的页面查找下载路径)参考页面:https://pkgs.org/download/libmecab2,下载完成之后进行安装。**没有缺失请忽略。**

shell 复制代码
sudo dpkg -i ./libmecab2_0.996-10build1_amd64.deb

包损坏

注意,在安装 mysql-community-server_8.0.26-1ubuntu20.04_amd64.deb 时会报如下错误,此时,是因为包可能有损坏。没有损坏请忽略。

尝试使用如下命令修复一下。

shell 复制代码
sudo apt-get install -f

如果失败,清除MySQL服务器:

shell 复制代码
sudo apt-get purge mysql-community-server mysql-community-server

然后清理并更新:

shell 复制代码
 sudo apt-get autoclean && sudo apt-get clean && sudo apt-get update

做一般升级:这里需要等一段时间(10分钟左右)

shell 复制代码
 sudo apt-get upgrade

继续安装 sudo dpkg -i mysql-community-server_8.0.26-1ubuntu20.04_amd64.deb。出现如下页面,输入root的密码,回车。此处密码为MySQL的root密码(这里密码不要设置太简单)

安装完成后,继续安装 sudo dpkg -i mysql-server_8.0.26-1ubuntu20.04_amd64.deb

安装完成后验证

查看启动状态,确认是否成功开启 mysql:

shell 复制代码
service mysql status

执行指令之后等待几秒钟之后...,如果出现了 active (running) 的提示,说明已经启动了:

如果不是上述的启动状态,则使用一下指令开启 mysql 服务

shell 复制代码
service mysql start

确认是否启动成功

shell 复制代码
netstat -tap | grep mysql

在LISTEN状态下,启动成功:

启动完成后验证MySQL是否安装成功

shell 复制代码
mysql -u root -p

输入上述设置的密码,成功进入MySQL。

mysql 中文乱码 解决

没有使用中文的需求和烦恼可以忽略

  • 修改配置文件*
shell 复制代码
vi /etc/mysql/mysql.conf.d/mysqld.cnf

vim打开后,添加命令、修改设置权限(vim编辑器基础使用: i进入编辑 esc退出编辑 :wq保存退出)

shell 复制代码
# 添加命令,修改编码格式为utf8
character_set_server=utf8

并且,设置授权

shell 复制代码
# bind-address 后修改为  0.0.0.0
bind-address = 0.0.0.0

修改后的结果如下:

本地远程连接MySQL服务器

本地还不能远程连接服务器的原因是: 服务器中下载好的MySQL数据库,默认是localhost本地连接

解决思路: 修改数据库的连接权限%

1. 先在服务器中启动MySQL,并以root账户登录

mysql 复制代码
mysql -u root -p;
# 输入root登录密码

2. 查看用户权限------存储用户权限的表在mysql数据库下的user表,所以我们先丝滑地切进去看看怎么个事儿

mysql 复制代码
# 选择使用的数据库
use mysql;
# 查看user表中指定的权限
select host, user from user;

可以看出我们这里的root用户还是localhost,只能本地连接,也就是现在还只能在服务器中连接

3. 选择一下,这里可以直接给root允许远程连接,但是不不安全;还可以新建一个用户,这个用户可以给他授权访问

mySQl 复制代码
# 给root授权
update user set Host='%' where user='root';
flush privileges;  # 刷新权限

# 新建一个用户
create user 'username'@'%' identified by '123456';
             用户名     所有地址            密码

4. 给新用户分配他能访问的数据库,表以及能拥有的权限

mysql 复制代码
-- 授予连接访问权限
GRANT ALL PRIVILEGES ON [数据库名].[表名] TO '[用户名]'@'[连接地址]' WITH GRANT OPTION;
-- 授予操作增删改
GRANT SELECT, UPDATE, DELETE, INSERT ON  test.* TO 'username'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;

5. 我们登录新用户看一下

mysql 复制代码
# 登录
mysql -u xy -p

6. 我们远程连接测试一下

相关推荐
ai小陈7 小时前
GPU服务器租用存储验收:检查点写入与磁盘吞吐实战
运维·服务器·人工智能·ai·ssh·gpu算力
PaperData7 小时前
1985-2025年全国区县专利申请与授权面板数据
数据库
snpgroupcn7 小时前
大数据量SAP迁移方案:系统越大,越不能硬搬
数据库·sap
Flynt8 小时前
Redis Cluster主节点挂了,为什么"高可用"还全员掉线?我把三次kill的记录翻出来了
数据库·redis·分布式
笃行3508 小时前
KingbaseES 数据加密全解:从 SSL 到全密态
数据库
Ivanqhz9 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
FPGA小徐9 小时前
PA1 基础设施(2)深度解析:NEMU 中 ITRACE、MTRACE、FTRACE、IRINGBUF、ETRACE、DIFFTEST 全解析
java·服务器·网络
java1234_小锋10 小时前
【技术专题】Mysql8 数据库 - Mysql8 数据类型简介
数据库·mysql
知行EDI10 小时前
知行之桥 MaBang 端口使用指南——Create Order 订单创建篇
java·服务器·数据库
成旭先生10 小时前
【2026】企业信息模糊查询 API 实战:名称、注册号、统一社会信用代码、企业类型与法人一次查全
服务器·数据库·数据服务