最近课程设计要求部署一个MySQL数据库来存储数据,要求多台电脑都能连接到该数据库,于是决定把它部署在我的阿里云上。
MySQL的安装
我的阿里云服务器目前安装的Ubuntu 16.04,利用MySQL APT Repository来安装不是很复杂。
首先要下载该 .deb 包Download MySQL APT Repository
我下载到的是 mysql-apt-config_0.8.10-1_all.deb ,便可以执行下列命令
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
更新包的信息
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,执行下面语句把它改为’%’
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的新特性: