我刚刚下载了MySQL工作台。
但我不太明白如何将它与我的远程服务器上的数据库同步。
工作台要求输入“host name”,所以我提供了我的远程服务器的主机名。我指定端口3306。
然后,我提供一个用户名。这是我登录PhpAdmin时使用的用户名--我应该使用其他用户名吗?
然后我提供一个密码,这也是我为PhpAdmin使用的密码。
但这并不管用。
奇怪的是,错误总是告诉我我的用户名是:username@current_network_im_using_to_access_the_internet
但这似乎不对--在phpAdmin上,我的用户名显示为username@localhost
。
我不太确定该怎么办。
你能帮帮我吗?
4条答案
按热度按时间w8biq8rn1#
MySQL将登录视为特定于其来源的主机。您可以在您的家庭计算机上使用与在服务器本身上使用的密码不同的密码,并且可以从不同的原始主机向同一用户名授予完全不同的权限集。
在PHPMyadmin上,数据库与Web服务器运行在同一服务器上,因此将自身称为
localhost
,IP为127.0.0.1
。安装了工作台的计算机必须使用与username@localhost
不同的凭据访问MySQL。服务器要求您从要连接的任何主机授予对您的用户名的访问权限。在PhpMyAdmin中,您需要授予从远程主机访问数据库的权限:(另请参阅Pekka的回答,了解如何允许来自任何主机的连接)
要查看您当前在
localhost
上拥有的所有授权,以便可以为远程主机复制它们,请执行以下操作:此外,首先需要将MySQL服务器设置为接受远程连接。情况并不总是这样,尤其是在网络托管平台上。在
my.cnf
文件中,必须删除或注解掉skip-networking
行。如果没有skip-networking
行,则必须注解掉该行:...然后重新启动MySQL。
icnyk63a2#
您的phpMyAdmin似乎与数据库本身运行在同一服务器上。
因此,它可以使用
username@localhost
连接到服务器。您需要通过添加另一个用户
username@%
(%
表示“任何主机”),使MySQL接受来自外部本地主机的连接。但是请注意,这不是一种好的做法--如果您有一个静态IP,请考虑限制对该地址的访问。
zlwx9yxi3#
如果您计划使用MySQL工作台来管理远程服务器中的MySQL数据库和表,我建议您通过SSH连接。通过关注许多文章和论坛,我尝试了许多其他方法,添加绑定地址,使用uname@host添加一个具有所有特权的新用户到MySQL,等等,但在我的情况下,所有这些步骤都是浪费时间,如果您的服务器如此严格,这些步骤将是有用的。
按照以下步骤操作。
1.单击MySQL连接标题旁边的+按钮以添加新连接。
1.输入连接名称(无论您需要什么)。
1.选择连接方法标准的TCP/IP over SSH。
1.输入SSH详细信息,如主机(IP/域)、用户名和密码。(应在服务器中启用使用密码授权的SSH)
1.MySQL主机详细信息,如主机名(默认为本地主机或127.0.0.1)、端口(3306)、MySQL用户名和密码。
1.然后点击测试连接。
0yg35tkg4#
为了连接到安装在Windows10上的MySQL工作台,我发现上面这篇由Shihab撰写、Dharman编辑的帖子对即时连接很有用。但是,以下是我通过TCP/IP连接所做的事情,这对我通过我的代码连接到MySQL也很有用:
第一步:更改MySQL中的绑定地址在安装了MySQL社区服务器的Ubuntu机器上,我使用Putty命令更改了mysqld.cnf文件,命令为:sudo Nano/etc/mySQL/mysql.conf.d/mysqld.cnf。使用箭头键,我向下滚动到带有“Bind-Address”的行,并将其从“127.0.0.1”更改为“0.0.0.0”。我使用ctrl+x关闭并输入“Y”保存文件。
第二步:重启MySQL服务器您必须重启MySQL服务器。要做到这一点,您可以使用命令“sudo service MySQL Restart”重新启动。如果无法重启,请终止MySQL进程。首先使用“ps ax|grep mySQL”找到MySQL的进程ID,然后使用“sudo kill[process_id]”终止该进程。
第三步:更改Ubuntu的防火墙设置要允许外部连接,您需要更改防火墙的设置。我使用了UFW(简单防火墙)来更改设置。如果UFW尚未启用,则使用命令“sudo UFW Enable”启动UFW。使用“sudo UFW Status”检查状态。现在,使用命令“sudo UFW Allow from[IP_Address]to Any port 3306”启用从特定IP地址到MySQL端口3306(默认)的连接,或者使用命令“sudo UFW Allow MySQL”允许从任何IP地址到该端口的所有连接。
第四步:在MySQL中创建用户我在MySQL中创建了一个用户,避免了使用根用户登录,命令是创建用户‘USER_NAME’@‘YOUR_IP_ADDRESS’,用‘PASSWORD’标识;
第五步:通过MySQL工作台连接
1.点击数据库
1.点击连接到数据库
1.在连接方法字段中,选择“标准的TCP/IP”
1.在主机名中,输入您的服务器IP地址
1.在服务器端口中,保留为“3306”,除非您已经更改了服务器中MySQL的端口
1.在用户名中,输入您的服务器用户名
1.在密码中,输入您的服务器密码
1.点击确定
第六步:如果您仍然无法连接
1.在您的服务器上禁用防火墙并检查您是否能够连接
1.如果您能够连接,请使用命令“sudo UFW Reset”重置防火墙(确保您复制或截图防火墙中的所有连接。您可以使用命令“sudo UFW Status”获取所有端口)。如果无法连接,请转到步骤9。
1.现在允许之前使用命令sudo UFW Allow 80、sudo UFW Allow MySQL等出现的每个端口。
1.分别使用“sudo UFW Disable”和“sudo UFW Enable”命令关闭和启用防火墙。
1.检查是否可以通过工作台连接
1.如果仍然无法连接,只需使用命令sudo reot重启服务器即可
1.重启完成后,您应该可以连接到MySQL服务器。
1.如果您仍然无法连接,可以使用类似nmap的软件检查所有打开的端口,看看是否可以看到3306。如果您看不到端口,您必须调试是什么阻止了防火墙阻止您的MySQL连接。
1.使用命令“show grants for‘User_name’@‘Localhost’;”查看您的MySQL权限。如果您能够看到授权,这意味着您的IP地址是不允许的。尝试使用以下命令使用您的IP地址更新授权:“GRANT ALL PROCESSIONS On DATABASE.*to‘USER’@‘YOUR REMOTEHOST’,由‘newpassword’标识;”或GRANT ALL PROCESS On DATABASE.*to‘USER’@‘YourRemotehost’,标识为‘newpassword’;(允许从任何地方进行连接)
如果以上步骤不起作用,但您仍然想通过快速黑客进行连接高级黑客步骤:通过SSH使用MySQL工作台登录
1.点击数据库
1.点击连接到数据库
1.在连接方法字段中,选择“基于SSH的标准TCP/IP”
1.在SSH主机名中,输入您的服务器IP地址
1.在SSH用户名中,输入您的服务器用户名
1.在SSH密码中,输入您的服务器密码
1.在SSH密钥文件中,不要执行任何操作
1.在MySQL主机名中,将其保留为“127.0.0.1”
1.在服务器端口中,保留为“3306”,除非您已经更改了服务器中MySQL的端口
1.在用户名中,输入您在上一步中创建的MySQL用户名
1.在密码中,输入您在上一步中创建的MySQL密码
1.现在点击确定,您应该可以进入您的MySQL工作台
其他有用的命令:
1.检查MySQL是否正在运行:系统ctl状态MySQL
1.进入MySQL:sudo mySQL-u[用户名]-p(默认用户名为根,密码为空(只需按Enter键))
1.检查UFW状态:SUDO UFW状态
1.检查用于删除端口访问的UFW状态编号:SUDO UFW状态编号
1.删除ufw端口访问:sudo ufw删除[number_of_the_port_to_be_deleted_from_previous_command]
1.启动MySQL服务:SUDO服务MySQL启动
1.更新所有包:sudo apt更新版
1.卸载MySQL:sudo apt-Get Remove MySQL*
1.安装MySQL步骤1:SUDO APT更新步骤2:SUDO APT安装MySQL-SERVER步骤3:SUDO系统ctl启动mysql.service步骤4(如果安装过程中出现故障):SUDO APT--修复-中断安装