最近在写一个小app,需要用到数据打点,少不了与mysql打交道,但因为是客户端出生,可视化工具必不可少,但连接过程,坎坎坷坷,记录下来给后人乘凉。
前置知识
数据库有自己的一个端口,默认是3306端口,如果有调整,后续内容自行替换。
查看数据库端口:
mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.00 sec)
账号授权
首先要保证你登录的账号有远程登录权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
其中的IDENTIFIED BY 后边的root是密码,你可以自己修改密码。
之后刷新权限:
FLUSH PRIVILEGES
linux防火墙
数据库被远程访问,第一个关卡是系统的防火墙,需要确保防火墙放行了这个port;
[~] firewall-cmd --list-ports
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 888/tcp 3306/tcp
这里有3303/tcp 说明防火墙已经放行,如果没有放行,需要将改端口添加进防火墙列表里
[~] firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[~] firewall-cmd --reload
success
阿里云安全组
连接从linux服务器通过之后,阿里云安全组还会卡,需要手动将端口添加安全组里。
不知道安全组的同学,进来补课:https://help.aliyun.com/document_detail/25387.html
“目的” 初次填写:3306/3306,后面它会自动定位到MySQL(3306)