我Ubuntu
在上创建了一个新的 Server v18 Microsoft Azure
。我创建了一条入站规则以允许port 3306
我跑了updates and upgrades
我做到了sudo apt install mysql-server
我检查了它是否正在运行:
sudo service mysql status
现在我尝试通过它进行连接,但单击按钮MySQL Workbench
时无法连接test connection
我还遗漏了什么?
答案1
要将 MySQL 暴露给 localhost 以外的任何主机,你必须有以下行
适用于mysql5.6及以下版本
在 /etc/mysql/my.cnf 中取消注释,并分配给你的计算机 IP 地址,而不是环回
适用于mysql5.7及以上版本
在 /etc/mysql/mysql.conf.d/mysqld.cnf 中取消注释,并分配给你的计算机 IP 地址,而不是环回
将 xxx 替换为您的 IP 地址
bind-address = xxx.xxx.xxx.xxx
bind-address = 0.0.0.0
或者如果您不想指定 IP,请添加 。
然后停止并使用新的 my.cnf 条目重新启动 MySQL。运行后,转到终端并输入以下命令。
lsof -i -P | grep :3306
返回结果应该类似这样,其中 xxx 中包含您的实际 IP
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
如果上述语句正确返回,您将能够接受远程用户。但是,要使远程用户以正确的权限进行连接,您需要在 localhost 和 '%' 中创建该用户,如下所示。
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
then,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
最后,
FLUSH PRIVILEGES;
EXIT;
然后你就可以连接到你的mysql了。
希望对你有帮助。