第一步,安装mysql

sudo apt install mysql-server

第二步,切换root身份(如果本身就是root用户可以忽略这步)

sudo su root

第三步,登录mysql

mysql

Ubuntu server22.0.4安装mysql8并配置远程登录_Ubuntu

3.1 查询用户表

use mysql;
select Host, User, plugin, authentication_string from user;

Ubuntu server22.0.4安装mysql8并配置远程登录_Ubuntu_02

3.2 讲解

Host:数据库访问方式,localhost表示只能本地访问,%表示可以任意地址访问。

User:登录数据库的用户名。

plugin:密码加密方式。

authentication_string:加密后的密码。

可以看到,root的plugin是auth_socket,可以简单理解为只允许本地的linux root用户,就是User同名用户,所以在最开始的时候需要将用户切换为root,不是因为root有超级管理员权限!

第四步,允许用户远程访问

root不动了,只允许本地root用户登录挺好的。

Ubuntu在安装mysql时提供了一个debian-sys-maint用户,权限基本和root相同,我们使用这个用户就行。这个用户默认的Host是localhost,需要手动改成%

ALTER USER 'debian-sys-maint'@'%' IDENTIFIED WITH caching_sha2_password BY '123456';

123456是新密码。

这里要说明一下,本来系统是给debian-sys-maint用户提供了默认密码的,不知道我为什么不好使。如果想查看系统提供的默认密码,可以使用如下指令:

sudo nano /etc/mysql/debian.cnf

Ubuntu server22.0.4安装mysql8并配置远程登录_mysql_03

password就是密码。

第五步,配置mysql允许外部访问

编辑文件

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address = 127.0.0.1,改成 bind-address = 0.0.0.0

Ubuntu server22.0.4安装mysql8并配置远程登录_Ubuntu_04

第六步,重启mysql服务

sudo systemctl restart mysql