数据库 - 在阿里云ECS服务器Ubuntu20.04上部署MySql 8.0作为远程数据库
前言:最近写大作业需要用到数据库,刚好前段时候搞活动买了一年的服务器来玩,还闲着,就试着装个MySql
一些要注意的概念和知识
- ECS服务器理解成毛坯服务器,就相当于同学们在虚拟机中新装的Ubuntu,什么软件都没装,包括tmux和vim等
- 网上大多教程(点名批评csdn这个抄来抄去还抄不全的破地方),在执行各种语句的时候并没有讲清楚系统版本和MySql的版本。然而不同版本之间,尤其是MySql有大版本更新的情况下,语法差异很大!
- 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

浙公网安备 33010602011771号