远程连接阿里云服务器的'本地'MySQL数据库

阿里云最近搞活动,学生价10块一个月,于是乎找研究僧同学买了半年玩玩。
正常情况下买了服务器之后还要买数据库,但是我只是用来做测试,所以没必要再买几十块一个月的买数据库。
服务器我买的是市场镜像并且已经装好了Ubuntu+MySQL+Apache+PHP环境,所以就想着和在本地开发一样,有了MySQL就没必要再单独买数据库。
OK,实现做一些声明吧:
1.我是用的是Mac的OS X EI Captian系统,版本:10.11.1
2.所有链接以及操作均在终端完成
3.鉴于一些原因,
服务器地址为:123.456.789.123
数据库密码为:databasePassword
实例名(也就是登陆远程服务器之后的系统名字):iZ28wfqwhqyZ

再啰嗦一下,远程登录数据库无非需要三个数据:数据库所在的IP,登陆数据库的账号,登录密码。
并且在登录前确定远程的数据库开启了远程连接。

下面粗略说说我从买完服务器到连接数据库成功的过程:
1.连接远程服务器:
这里我在终端用ssh连接,因为Mac系统自带了ssh服务,
在终端输入以下指令:

localhost:~ info$ ssh root@123.456.789.123

会显示:

root@123.456.789.123's password: 

熟悉Linux系统的朋友都知道,输密码是不会显示的,所以这里要输入你在买服务器时,设置的登录服务器的密码,输入完成之后会显示:

Welcome to aliyun Elastic Compute Service!

Last login: Fri Nov 27 13:40:57 2015 from 123.456.789.123
root@iZ28wfqwhqyZ:~# 

2.获取MySQL的账号及密码
初次使用的时候,MySQL的密码放在/alidata/account.log里面
所以通过以下的指令去查看密码:

root@iZ28wfqwhqyZ:~# cd /alidata
root@iZ28wfqwhqyZ:/alidata# vim account.log
##########################################################################
# 
# thank you for using aliyun virtual machine
# 
##########################################################################

FTP:
account:与本次无关
password:与本次无关

MySQL:
account:root
password:databasePassword

记住这个账号密码,作为远程登录数据库的账号密码。
退出vim编辑器。

3.修改MySQL的远程连接权限

root@iZ28wfqwhqyZ:~# mysql -h 127.0.0.1 -u root -pdatabasePassword

输完这个你应该会看到:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.37-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, 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> 

这表示你进去了MySQL,注意看最后一行;

mysql>use mysql;   
mysql>update user set host = ’%’ where user = ’root’; 

如果出现


ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 

说明已经存在host是%的了;

MySQL> select host from user where user = 'root'; 

显示:

+-----------------------+ 
| host | 
+-----------------------+ 
| % | 
| 127.0.0.1 | 
| localhost.localdomain | 
+-----------------------+ 
3 rows in set (0.00 sec) 

继续输入:

MySQL>flush privileges; 

flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在”不重启MySQL服务”的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险–摘自百度知道–回答者:talorkitty

OK 此时已经修改了MySQL的远程连接权限,远程登录吧~

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要实现阿里云ECS上MySQL远程连接,需要进行以下步骤: 1. 登录阿里云ECS实例,进入MySQL服务,确保MySQL服务已经开启。 2. 在MySQL服务器上创建一个MySQL用户,并授权给该用户允许远程连接MySQL服务器的权限。您可以使用如下命令创建用户并授权: ``` CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 这里创建了一个名为myuser的用户,并授予了该用户在所有数据库和所有表上的所有权限。'%'表示可以从任何远程主机连接到MySQL服务器。 3. 修改MySQL服务器的配置文件,允许远程访问。在MySQL服务器上找到my.cnf配置文件,并注释掉bind-address选项(默认是绑定到127.0.0.1,即本地回环地址),或将其设置为0.0.0.0,表示可以从任何远程主机连接到MySQL服务器。 ``` #bind-address = 127.0.0.1 bind-address = 0.0.0.0 ``` 4. 在阿里云ECS实例中打开MySQL服务的3306端口,允许远程主机连接。可以使用阿里云控制台或者命令行工具进行操作。 如果使用防火墙,还需要在防火墙中添加入站规则,允许外部主机访问MySQL服务的3306端口。 完成以上步骤后,就可以使用MySQL客户端工具从任何远程主机连接到阿里云ECS上的MySQL服务器了。连接字符串格式为: ``` mysql -h <ecs_public_ip> -P 3306 -u myuser -p ``` 其中,<ecs_public_ip>是ECS实例的公网IP地址,myuser是您在MySQL服务器上创建的用户,密码会在使用mysql命令后提示您输入。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值