为了连接到安装在Windows 10上的MySQL Workbench,我发现Shihab撰写并由Dharman编辑的上述帖子对我立即连接非常有用。但是,以下是我连接TCP/IP所做的事情,这对我通过代码连接到MySQL也很有用:
步骤1:更改MyMySQL中的绑定地址
在Ubuntu机器上(我的MySQL Community Server安装在其中),使用Putty,我使用命令“sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf”更改了mysqld.cnf文件。使用箭头键,我向下滚动到带有“bind-address”的行,并将其从“127.0.0.1”更改为“0.0.0.0”。我使用ctrl + x关闭并输入“Y”保存文件。
步骤2:重新启动MySQL服务器
您必须重新启动MySQL服务器。要执行此操作,可以使用命令“sudo service mysql restart”重新启动。如果无法重新启动,请杀死MySQL进程。首先使用“ps ax | grep mysql”查找MySQL的进程ID,然后使用“sudo kill [process_id]”杀死该进程。
步骤三:更改Ubuntu防火墙设置
为了允许外部连接,您应该更改防火墙的设置。我使用UFW(简单防火墙)来更改设置。如果尚未启用,请使用命令“sudo ufw enable”启动UFW。使用命令“sudo ufw status”检查状态。现在,使用命令“sudo ufw allow from [ip_address] to any port 3306”允许从特定IP地址连接到MySql端口3306(默认),或者如果您的IP地址经常更改,则可以允许所有IP地址连接到该端口,使用命令“sudo ufw allow mysql”。
步骤四:在MySQL中创建用户
我在MySQL中创建了一个用户,以避免使用root登录,使用命令“CREATE USER 'user_name'@'your_IP_Address' IDENTIFIED BY 'password';
步骤五:通过MySQL Workbench连接
- 点击数据库
- 点击连接到数据库
- 在连接方法字段中,选择“标准TCP/IP”
- 在主机名中,输入您的服务器IP地址
- 在服务器端口中,除非您已更改服务器上MySql的端口,否则保持为“3306”
- 在用户名中,输入您的服务器用户名
- 在密码中,输入您的服务器密码
- 点击确定
步骤6:如果您仍然无法连接
在您的服务器上,禁用防火墙并检查是否能够连接。
如果可以连接,请使用命令 "sudo ufw reset" 重置防火墙。(确保将防火墙中所有连接的副本或屏幕截图保存好,您可以使用命令 "sudo ufw status" 获取所有端口)。如果无法连接,请转到步骤9。
现在使用命令 "sudo ufw allow 80"、"sudo ufw allow mysql" 等允许每个以前存在的端口。
使用命令 "sudo ufw disable" 和 "sudo ufw enable" 分别禁用和启用防火墙。
检查是否能够通过工作台连接。
如果仍然无法连接,只需使用命令 "sudo reboot" 重新启动服务器。
完成重新启动后,您应该能够连接到 MySQL 服务器。
如果仍然无法连接,请使用类似 nmap 软件检查所有打开的端口,并查看是否可以看到 3306。如果无法看到该端口,则必须调试防火墙阻止 MySQL 连接的原因。
使用命令 "show grants for 'user_name'@'localhost';" 检查您的 MySQL 特权。如果能够看到特权,则意味着您的 IP 地址不被允许。请尝试使用以下命令根据您的 IP 地址更新授权 "GRANT ALL PRIVILEGES ON database.* TO 'user'@'yourremotehost' IDENTIFIED BY 'newpassword';" 或 GRANT ALL PRIVILEGES ON database.* TO 'user'@'yourremotehost' IDENTIFIED BY 'newpassword';(允许从任何地方连接)。
如果以上步骤无法实现连接,但您仍想通过快速黑客方式连接
高级黑客步骤:通过SSH使用MySQL Workbench登录
- 点击数据库
- 点击连接到数据库
- 在连接方法字段中,选择“通过SSH的标准TCP/IP”
- 在SSH主机名中,输入您的服务器IP地址
- 在SSH用户名中,输入您的服务器用户名
- 在SSH密码中,输入您的服务器密码
- 在SSH密钥文件中,不要做任何操作
- 在MySQL主机名中,将其保留为“127.0.0.1”
- 在服务器端口中,保持不变为“3306”,除非您已更改了服务器上MySQL的端口
- 在用户名中,输入您在上一步中创建的MySQL用户名
- 在密码中,输入您在上一步中创建的MySQL密码
- 点击确定
现在,您应该能够进入您的MySQL Workbench
其他有用的命令:
- 检查MySQL是否正在运行:systemctl status mysql
- 进入MySQL:sudo mysql -u [用户名] -p(默认用户名为root,密码为空(只需按回车键))
- 检查ufw的状态:sudo ufw status
- 检查ufw状态编号以删除端口访问:sudo ufw status numbered
- 删除ufw端口访问:sudo ufw delete [从上一个命令中要删除的端口号]
- 启动MySQL服务:sudo service mysql start
- 更新所有软件包:sudo apt update
- 卸载MySQL:sudo apt-get remove mysql*
- 安装MySQL
步骤1:sudo apt update
步骤2:sudo apt install mysql-server
步骤3:sudo systemctl start mysql.service
步骤4(如果安装过程中出现问题):sudo apt --fix-broken install