Ubuntu 18.04 安装mysql 8.0 远程登录

本文首发地址:开源实践网:Ubuntu 18.04 安装mysql 8.0 远程登录

一 简介

使用Ubuntu18.04安装完mysql 5.27以后,在部署项目的时候,偶遇一个比较恶心的bug,就是服务器部署项目无法连上数据库,并且一直无法解决,偶然间在网上看到mysql 5.27对Ubuntu18.04支持有问题,于是重置系统,然后重新安装mysql 8.0

官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能!

  1. 账户与安全
  2. 优化器索引
  3. 通用表表达式
  4. 窗口函数
  5. InnoDB 增强
  6. JSON 增强

二 安装

  1. 下载deb包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
  1. 运行命令
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
sudo apt update
  1. 安装mysql8
sudo apt install mysql-server
  1. 输入root密码


    输入密码
  2. 密码加密方式选择建议(也是我画圈的那个)
    注:使用这种方式远程登录的软件需要最新,不然则选择另一个


    加密方式
  3. 查看mysql是否安装成功

 mysql -u root -p

三 配置远程登录

  1. 登录mysql机器
mysql -u root -p
  1. 切换到Mysql数据库
mysql> use mysql
  1. 在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
select host, user, authentication_string, plugin from user;

执行完上面的命令后会显示一个表格
查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

  1. 授权 root 用户的所有权限并设置远程访问
GRANT ALL ON *.* TO 'root'@'%';
  1. 创建一个用户,用来登录
create user '用户名'@'%' identified by '密码';
注: 密码必须要大写字符,特殊字符,数字 (为了安全)
  1. 刷新权限
flush privileges;
  1. 访问数据库
    远程访问数据库的可视化工具比较多如:Navicat、SQLyog、MySQL workbench 等,我这里使用 Navicat
    输入访问的 host 和密码,报 2059 错误,这是因为 MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
    此问题有两种方法,一种是更新 Navicat 驱动来解决此问题,另一种是将 MySQL 用户登录的加密规则修改为 mysql_native_password,第一种方法我试过了没有起作用,我这里采用第二种方法。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 
FLUSH PRIVILEGES; 

你可能感兴趣的:(Ubuntu 18.04 安装mysql 8.0 远程登录)