我有一个运行Ubuntu 14.04 LTS Server的Linux VM。我已经在其上安装了MySQL 5.6.26,并通过从终端窗口发出以下命令来添加用户:
CREATE USER 'sas'@'%' IDENTIFIED BY 'some-password-1234';
GRANT ALL PRIVILEGES ON *.* TO 'sas'@'%' IDENTIFIED BY 'some-password-1234' WITH GRANT OPTION;
FLUSH PRIVILEGES;
我可以使用以下命令使用此用户登录mysql:
mysql -u sas -p
并且可以通过发出以下命令看到此用户列在 MySQL.users 表中:
MySQL> select host, user from mysql.user;
这将产生以下输出:
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | sas |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | debian-sys-maint |
| localhost | root |
| ubuntu | root |
+-----------+------------------+
但是,当我尝试使用用户"sas"的凭据从Windows框中在MySQL工作台中设置连接时,我得到
"无法连接到 10.166.7.16 上的 MySQLServer"。
这不是网络问题,因为在 Linux 机器上运行 tcpdump 会显示从 Windows 盒子启动的连接。
我应该注意什么?
在 Debian 和 Ubuntu 上,mysqld 默认只绑定到 lo 接口。浏览MySQL的配置并查找读取bind-address
的指令。如有必要,将其值更改为 0.0.0.0,重新启动 mysqld 并重试。