Ubuntu安装MySQL并用Navicat远程连接MySQL教程

Ubuntu安装MySQL

虚拟机版本:Ubuntu18.04

前言

由于本人经历了无数次MySQL的安装,无论是win下还是Linux下,每次都遇到各种各样的问题,再加上csdn上的教程很乱,没有系统的,基于此写下这篇博客,这篇博客的内容本人亲自运行了两次,没有遇到任何问腿,请各位放心食用。

1 安装MySQL

1.1 更新源

sudo apt-get update

1.2 安装MySQL服务器

sudo apt-get install mysql-server

1.3 安装MySQL客户端

sudo apt-get install mysql-client
1.3.1MySQL客户端与MySQL服务器的区别

mysql-server 是MySQL核心程序将安装MySQL数据库服务器,用于生成管理多个数据库实例,持久保存数据并为其提供查询接口(SQL),供不同客户端调用。

mysql-client 是操作数据库实例的工具,允许连接到MySQL服务器使用该查询接口。它将为您提供MySQL命令行程序。

如果只需要连接到远程服务器并运行查询,只安装mysql-client就可以了。如果是服务器只提供连接服务的只需要安装mysql-server。

1.4 配置MySQL

运行MySQL初始化安全脚本

sudo mysql_secure_installation

mysql_secure_installation脚本设置的东西:更改root密码、移除MySQL的匿名用户、禁止root远程登录、删除test数据库和重新加载权限。询问是否要更改root密码时,看情况是否需要更改;循环是否禁止远程登录时,要输入NO,否则会导致后面用navicat远程连接mysql失败。其余的问题直接回车,使用上面的这些选项可以提高MySQL的安全。

1.5 测试MySQL

systemctl status mysql.service

会得到以下输出

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2024-01-20 16:45:25 CST; 25min ago
 Main PID: 20955 (mysqld)
    Tasks: 28 (limit: 4624)
   CGroup: /system.slice/mysql.service
           └─20955 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

120 16:45:24 xuyifeng-virtual-machine systemd[1]: Starting MySQL Community Server...
120 16:45:25 xuyifeng-virtual-machine systemd[1]: Started MySQL Community Server.

1.6 启动MySQL数据库服务

sudo service mysql start
或
sudo systemctl start mysql.service

1.7 设置MySQL服务开机自启动

sudo service mysql enablesudo systemctl enable mysql.service

1.8 配置MySQL远程登录

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

打开配置文件,找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可或简单一点注释掉也行

Ubuntu安装MySQL并用Navicat远程连接MySQL教程_第1张图片

修改完成保存后,需要重启MySQL服务才会生效

2 登录MySQL

2.1 首次使用初始账户登录

MySQL安装好时,无法用root进行登录,只能先用MySQL初始的系统账户登录。

查看MySQL初始系统账户和密码:

sudo cat /etc/mysql/debian.cnf

Ubuntu安装MySQL并用Navicat远程连接MySQL教程_第2张图片

登录进去后,就需要创建root用户

2.2 创建root用户

因为我们习惯创建root用户时设的密码是123456或者root,但会报以下错误

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

意思是我们设的密码不符合MySQL密码的规则,那么我们就可以直接把这个规则删掉,当然这里有其他办法,详情可见这篇博客

mysql> uninstall plugin validate_password;

现在,我们就可以创建root用户啦

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

然后刷新权限

flush privileges;

Navicat远程连接MySQL

1 打开Navicat建立连接

Ubuntu安装MySQL并用Navicat远程连接MySQL教程_第3张图片

如果按我上面安装的过程来的话,这里是会报错的。。。错误提示如下

Ubuntu安装MySQL并用Navicat远程连接MySQL教程_第4张图片

这里就说明我们没法连接MySQL,需要解决问题

2 解决无法连接MySQL

2.1 可能的原因

  1. 权限不够
  2. 网络不通
  3. 防火墙未关闭
  4. 服务器上防火墙端口未开放
  5. 端口未被监听等等

2.2 解决方案

2.2.1 权限不够

这里解决方法就在上面配置MySQL时没有配置好,需要重新配置。具体可看上面的配置MySQL这一步。

sudo mysql_secure_installation

输出中有一个提示会询问你是否禁止远程登录时,要输入NO,其余的回车即可。

2.2.2 网络不通

win+r输入cmd进入dos命令行,测试与虚拟机的网络连通性

Ubuntu安装MySQL并用Navicat远程连接MySQL教程_第5张图片

2.2.3 MySQL账户设置

查看mysql账户是否不允许远程连接

mysql -u root -p
use mysql;
show databases;
select host,user from user;

Ubuntu安装MySQL并用Navicat远程连接MySQL教程_第6张图片

可以看到mysql已经设置允许远程连接

若root用户显示host为localhost 则需要授权 root 用户的所有权限并设置远程访问

可以通过修改表来实现远程

update user set host = '%' where user = 'root';
select host, user from user;
2.2.4 防火墙端口未开放

如果是刚建好的虚拟机,应该是不带防火墙的,需要先安装

sudo apt install firewalld

接下来查看防火墙的端口

sudo firewall-cmd --list-ports

在这里插入图片描述

这里我是显示3306的端口是开放的,因为之前配置好了。所以你们电脑上的显示应该是没有3306这个端口的,所以需要给他打开。

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

成功打开会显示success,然后我们需要重新加载防火墙

sudo firewall-cmd --reload

现在,我们查看下防火墙的端口,就会显示3306端口打开了

sudo firewall-cmd --list-ports

3 连接MySQL

按照信息填好,点击测试连接,显示连接成功,点击确认就好了~

Ubuntu安装MySQL并用Navicat远程连接MySQL教程_第7张图片

你可能感兴趣的:(安装教程,ubuntu,mysql)