主机操作系统是 Windows10。客户机操作系统是在 Oracle VirtualBox 上运行的 Ubuntu 18.04。
在 VirtualBox 设置中,我将网络设置设置为 NAT,并设置端口转发( 127.0.1.1:3306->10.0.2.15:3306 ...对端口 22 和 80 执行相同操作)
在浏览器中,当我访问 127.0.1.1 时,我可以访问本地主机。
在终端中,我可以通过 SSH 成功连接[电子邮件保护]。
但是当我尝试使用 mySQL Workbench 连接到 mysql 时出现错误。
在“读取初始通信包”时与 mySQL 服务器失去连接,系统错误:0
我的工作台连接设置是:
连接方式:标准 TCP/IP
主机名:127.0.1.1 端口:3306
用户名:root或者admin用户。
我编辑了我的cnf文件绑定地址 0.0.0.0
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysql]
bind-address = 0.0.0.0
我尝试使用我的“root”用户和密码进行连接。我创建了一个“admin”用户并赋予其所有权限,但仍然没有成功。
任何帮助都将不胜感激。这是我第一次尝试在 VirtualBox 上运行本地服务器,因此我可能遗漏了一些非常基本的东西。
谢谢你!
答案1
这解决了我的问题。
我补充道绑定地址 = 0.0.0.0在etc/mysql/my.cnf这并不正确。
对于 Ubuntu 18.04,编辑绑定地址的文件是etc/mysql/mysql.conf.d/mysqld.cnf 文件中实际上会有一行写着 bind-address: 127.0.0.1,将其更改为 0.0.0.0
之后,通过运行此命令重新启动 mysql
sudo service mysql restart
注意:使用 Ubuntu 根用户和密码(就像我在问题中提到的)将不起作用,您必须创建另一个具有管理员权限的 mySQL 用户。