今天又是万恶的周末 找点事情做做吧 不然如此漫长的一天要咋过 所以买了台ecs玩玩 ubuntu 16.04 环境 顺便搭啦个web环境 php5.6 + nginx 缓存装的是 redis
装完环境 装版本控制 git 服务器 搭建了下
最后 到了要外部链接数据库的时候 一直连不上 网上找了找 找出一系列解决办法 如下
1.先去你的阿里云后台 找到 本实例安全组 点击进去 再点击 配置规则再点击添加安全组规则添加相应内容 最后结果是如下就可以啦
注: 端口号 选你自己数据库用的端口号 一般都是 3306
自定义 TCP |
3306/3306
| 地址段访问 |
0.0.0.0/0 |
外部链接数据库
| 1 | 2017-12-16 17:34:03 |
2 上述配置完了之后你还是应该链接不上的 因为服务器默认是不让外部链接数据库的 所以 服务器的 mysql 配置要修改下
1. 找到 my.cnf 配置 下 bind-address = 127.0.0.1 注释掉这行 #bind-address = 127.0.0.1
2. [mysqld] 这个模块下 添加 skip-name-resolve 允许外部链接
3. 重启 mysql /etc/init.d/mysql restart
4. 上述都配置好了 你因该还是连不上的哦 还有几步小的操作慢慢 下面是复制了前人的成果
登录到mysql: mysql -uroot -ppwd
第一种(改表法):
修改host字段的值,将localhost修改成需要远程连接数据库的ip地址。或者直接修改成%。修改成%表示,所有主机都可以通过root用户访问数据 库。为了方便,我直接修改成%。命令:mysql> update user set host = '%' where user = 'root';
再次查看user表
+------+------+-------------------------------------------+
| host | user | password |
+------+------+-------------------------------------------+
| % | root | *826960FA9CC8A87953B3156951F3634A80BF9853 |
+------+------+-------------------------------------------+
1 row in set (0.00 sec)
修改成功,输入命令mysql> FLUSH PRIVILEGES; 回车使刚才的修改生效,再次远程连接数据库成功。
第二种(授权法):
例如,你想root使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
输入命令mysql> FLUSH PRIVILEGES; 回车使刚才的修改生效,再次远程连接数据库成功。bingo.