Solutions to AWS problems

1. get root privilege

sudo password root

su root

之后输入root密码后就可以使用

参考链接:https://www.bbsmax.com/A/MyJxvE7Vdn/

2. connect local host

用Xshell的时候直接用密钥连接,不需要再type密码,不然可能会报不必要的错

3. mysql安装没有root密码

卸载mysql https://medium.com/@srikar.appal/uninstall-mysql-from-ec2-6910c4597c6c

重新安装并获取密码 https://asvignesh.in/install-mysql-on-amazon-linux-in-aws-ec2/

sudo grep 'temporary password' /var/log/mysqld.log

4. ec2 mysql 连接navicat

  1. 首先 localhost采用EC2的公有 IPv4 地址而不是私有 IPv4 地址。

    微信截图_20211118020037

    微信截图_20211118020549

  2. 其次AWS的security group要添加相应的入站规则。3306是mysql的默认端口,底下的22是remote连接用的。

    微信截图_20211118020722

  3. 最后windows防火墙入站规则要添加3306port。

https://blog.csdn.net/yj19961126/article/details/81224107

以上是前期注意事项。

mysql的root是默认不允许远程访问的。首先创建一个新用户来实现远程访问。%代表可以被所有源访问。

CREATE USER 'aaa'@'%' IDENTIFIED BY 'password';

授予权限

GRANT ALL PRIVILEGES ON db_name.* TO 'aaa'@'%' WITH GRANT OPTION;

刷新权限

flush privileges;

尝试连接,如果不行再使用如下语句:

ALTER USER 'aaa'@'%' IDENTIFIED WITH mysql_native_password BY 'passwrod';

再次刷新权限

flush privileges;

微信截图_20211118022033

参考链接:https://stackoverflow.com/questions/50093144/mysql-8-0-client-does-not-support-authentication-protocol-requested-by-server

如果还是没有连接成功,确认一下mysql的端口是否绑定在0.0.0.0。

netstat -anp|grep 3306

微信截图_20211118022628

如果是127.0.0.1,更改bind-addrss。

https://stackoverflow.com/questions/9766014/connect-to-mysql-on-amazon-ec2-from-a-remote-server

5. 配置java版本

sudo alternatives --config java

6. 打开EC2端口

在安全设置打开EC2对应的安全组,添加入站规则。打开3306端口,http端口和3389端口。如果你的网址还是无法ping通,打开ICMP规则。

微信截图_20211118153231

7. 查看防火墙

https://cloud.tencent.com/document/product/213/14639

进入root查看防火墙规则,腾讯云和AWS操作是一样的。可以参考。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!