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. 我们远程连接测试一下

相关推荐
Python私教8 分钟前
model中能定义字段声明不存储到数据库吗
数据库·oracle
sun0077002 小时前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
oi773 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
mqiqe3 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
工业甲酰苯胺3 小时前
MySQL 主从复制之多线程复制
android·mysql·adb
BestandW1shEs3 小时前
谈谈Mysql的常见基础问题
数据库·mysql
重生之Java开发工程师3 小时前
MySQL中的CAST类型转换函数
数据库·sql·mysql
教练、我想打篮球3 小时前
66 mysql 的 表自增长锁
数据库·mysql