数据库 - 在阿里云ECS服务器Ubuntu20.04上部署MySql 8.0作为远程数据库

前言:最近写大作业需要用到数据库,刚好前段时候搞活动买了一年的服务器来玩,还闲着,就试着装个MySql

一些要注意的概念和知识

  1. ECS服务器理解成毛坯服务器,就相当于同学们在虚拟机中新装的Ubuntu,什么软件都没装,包括tmux和vim等
  2. 网上大多教程(点名批评csdn这个抄来抄去还抄不全的破地方),在执行各种语句的时候并没有讲清楚系统版本和MySql的版本。然而不同版本之间,尤其是MySql有大版本更新的情况下,语法差异很大!
  3. MySql自带的四个默认数据库

informance_schema

  • 保存了MySQl服务所有数据库的信息。
  • 具体MySQL服务有多少个数据库,各个数据库有哪些表,各个表中的字段是什么数据类型,各个表中有哪些索引,各个数据库要什么权限才能访问

mysql

  • 保存MySQL的权限、参数、对象和状态信息。
  • 如哪些user可以访问这个数据、DB参数、插件、主从

performance_schema

  • 主要用于收集数据库服务器性能参数
  • 提供进程等待的详细信息,包括锁、互斥变量、文件信息;
  • 保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;
  • 对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期,例如(CYCLE、MICROSECOND)

test

  • 顾名思义,没啥东西

具体步骤

下载安装

安装

sudo apt install mysql-server

检查是否运行正常

sudo netstat -tap | grep mysql 

或者

mysql -V

能够正常显示版本号

我是只作为server端,所以只安装了mysql-server,没有安装mysql-client
查资料说,两者的区别是:mysql-server是直接操作数据库文件,mysql-client只是操作数据库、表。
比如我远程用Navicat连接这个数据库,那么这个Navicat就是Client

本地连接

由于还没有进行用户设置等,所以我们还有一些初始步骤,这一步里和8.0之前的版本有些差异

查看默认用户名和密码

sudo cat /etc/mysql/debian.cnf 


我们用[Client]中的那个用户进行登录,也就是

mysql -u debian-sys-maint -p

输入对应的密码后就可以进入了

我们首先要设置root的密码(以此执行以下sql语句)

use mysql;
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges;

这里的flush privileges的目的是刷新各用户的权限

远程连接

其实就是添加远程的用户

create user 'root'@'%' identified by '远程登录要用的mysql密码';
grant all privileges on *.* to 'root'@'%';
flush privileges;

一定记住创建了用户之后,要授予其权限

最后对外网开放数据库,退出数据库,在terminal中执行

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

找到bind-address =127.0.0.1这一行,在前面加上#,也就是将其注释掉

最后,重启mysql

service mysql restart

一些常用的语句、命令

一定注意版本问题!这是MySql 8.0版本

mysql服务操作

sudo service mysql status # 查看服务状态
sudo service mysql start # 启动服务
sudo service mysql stop # 停止服务
sudo service mysql restart # 重启服务

创建新用户

create user 'root'@'%' identified by 'password';

重置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

必须要在mysql数据库里执行

查看用户和权限表

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

彻底删除mysql

以免不知道哪里出错,用于重置
依次执行

sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
posted @ 2021-12-10 14:41  ChisocDust  阅读(213)  评论(0)    收藏  举报