在阿里云上安装MySQL并配置远程链接

最近课程设计要求部署一个MySQL数据库来存储数据,要求多台电脑都能链接到该数据库,因而决定把它部署在个人阿里云上。html

MySQL的安装

个人阿里云服务器目前安装的Ubuntu 16.04,利用MySQL APT Repository来安装不是很复杂。mysql

首先要下载该 .deb 包Download MySQL APT Repositoryweb

我下载到的是 mysql-apt-config_0.8.10-1_all.deb ,即可以执行下列命令sql

sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb

更新包的信息shell

sudo apt-get update

利用apt-get install来安装MySQL数据库

sudo apt-get install mysql-server

等待一会就安装好啦,中间会要求设置密码等,按着流程走。安全

配置远程链接

  • 修改user表:
mysql> use mysql;
mysql> select User,host from user;

若是root的host为localhost,执行下面语句把它改成’%’bash

mysql> update user set host = '%' where user = 'root';
  • 找到my.cnf,注释掉其中的bind-address属性,若是没有就忽略该步骤,通常在/etc/mysql/下面,具体状况根据实际而定。服务器

  • 开启阿里云安全组端口策略,进入云服务器ECS,网络和安全->安全组->配置规则,将MySQL监听端口开放便可,以下:
    添加网络

成功后的状态
添加成功

链接测试

limeng@KID:~$ mysql -u root -h 服务器ip地址 -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 33
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

上面表示链接成功。

有可能会出现链接错误,在mysql5.7环境里,虽然能够设置default_authentication_plugin来改变认证加密方式,可是通常人不会去设置。在mysql8.0下,默认变成了default_authentication_plugin=caching_sha2_password,必须用8.0自带的mysql客户端才行,否则就链接不上数据库,可是能够改回旧的方式的。

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

这样的兼容性问题就得以解决了。

顺便说一句,MySQL中的默认字符集变为utf8mb4,若是在建表时指定默认字符为utf8会报warning的,并且删除不存在的表等也会报warning。

建议看一下MySQL 8.0的新特性

MySQL官方网站: What Is New in MySQL 8.0

MySQL 8.0 正式版 8.0.11 发布:比 MySQL 5.7 快 2 倍