Bootstrap

ubuntu20使用apt安装mysql8

在这里插入图片描述

ubuntu20使用apt安装mysql8

开发环境 ubuntu 20.4 + mysql8.0.41

报错列表

如果出现下面的报错,劝,别折腾了,按照我下面的方法来。
或者评论区留下出现的问题


ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
或
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
或
ERROR 1045 (28000): Access denied for user ....
或
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
或
ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded
或
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' ...
或
其他下载安装登录的奇葩问题

参考链接

mysql官网手册
Ubuntu20彻底删除MySQL8

首先删除旧mysql

假如之前有下载mysql,需要完全删除

参考连接:Ubuntu20彻底删除MySQL8

然后继续以下步骤

一、下载配置mysql8库索引

下载apt包

从这个官方网址下载:MySQL :: Download MySQL APT Repository

从这个界面下载apt包
请添加图片描述
点击直接下载
请添加图片描述
然后将下载的文件传到ubuntu上

解压

dpkg -i mysql-apt-config_0.8.33-1_all.deb
#报错,需要管理员权限
dpkg: error: requested operation requires superuser privilege
#加上sudo
sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb

包配置

解压完成会自动进入包配置

第一个选项是选择下载哪种mysql
第二个选项是是否下载连接器

请添加图片描述
选择第一个回车,这个是选择下载的mysql是那种的,选择第一个,回车会自动返回上一界面
请添加图片描述
是否选择下载连接器文件集合,选默认enabled
请添加图片描述

选择完成后选择ok出现下面界面就完成了配置
请添加图片描述

更新apt库索引

sudo apt-get update

会输出下面更新的库地址
在这里插入图片描述

二、下载安装mysql8

执行命令下载安装mysql

sudo apt-get install mysql-server -y

下载完了会出现一个给root用户创建密码的窗口,等下登录要用。
在这里插入图片描述

一个提醒
在这里插入图片描述
选择强密码还是以前的密码验证插件
在这里插入图片描述
选哪个都行,它推荐第一个,那就选第一个

在这里插入图片描述
到这就安装完了

三、启动mysql服务

sudo systemctl start mysql

配置开机自启动,忽略

下面这一步设置可忽略

systemctl enable mysql #设置自启动
systemctl list-unit-files|grep mysql #查看状态

本地登录

mysql -u root -p

在这里插入图片描述
到此就完成了。

远程登录

远程链接在ubuntu20中安装的mysql8

查看mysql的所有用户

select user,host,authentication_string,plugin from mysql.user;

在这里插入图片描述
发现host都是本地localhost的,所以需要创建一个新用户

# 注意这里的caching_sha2_password需要根据上面查询出来的plugin进行对应修改
#注意最后的 password 是密码,是给用户'root'@'%' 登录的
CREATE USER 'root'@'%' IDENTIFIED WITH 'caching_sha2_password' BY 'password';
#如果下载是和我一样的mysql版本应该都是 caching_sha2_password
#赋予所有权限,这个版本貌似不需要,忽略这一步
# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
#刷新
FLUSH PRIVILEGES;


# 如果某些参数设置错了,需要删除用户,命令如下,这里 'root'@'%' 是对应用户
DROP USER 'root'@'%';

使用客户端远程登陆

这里使用的是客户端工具,每个人用的不一样。略

如果报错

Public Key Retrieval is not allowed

那么修改如下配置
在这里插入图片描述

或者登录的时候添加以下登录参数

String url = "jdbc:mysql://localhost:3306/mydatabase?allowPublicKeyRetrieval=true&useSSL=false";
# 上面是参考连接,相应要修改,然后添加对应的参数
allowPublicKeyRetrieval=true&useSSL=false

完成

在这里插入图片描述

参考链接

mysql官网手册
Ubuntu20彻底删除MySQL8

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;