我在本地机器上安装了MySQL社区版5.5,我想允许远程连接,这样我就可以从外部连接。
我怎样才能做到这一点?
这在MySQL上是默认允许的。
默认情况下禁用的是远程`root'访问。 如果你想启用它,在本地运行这个SQL命令。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
然后在你的 "my.cnf "文件中找到下面这一行并**注释出来,在Unix/OSX系统中,该文件通常位于/etc/mysql/my.cnf
。在某些情况下,该文件的位置是/etc/mysql/mysql.conf.d/mysqld.cnf)。)
如果是Windows系统,你可以在MySQL安装目录中找到它,通常是类似于C:\Program Files\MySQL\MySQL Server 5.5\
,文件名是my.ini
。
改变行
bind-address = 127.0.0.1
改为
#bind-address = 127.0.0.1
在做了以上所有操作后,我仍然无法以root
远程登录,但Telnet到端口3306
确认MySQL
正在接受连接。
我开始查看MySQL中的用户,发现有[多个root用户][1],密码不同。
select user, host, password from mysql.user;
于是在MySQL
中,我又[设置了root的所有密码][2],终于可以以root
的身份远程登录了。
use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;
[1]: https://serverfault.com/questions/235593/mysql-log-shows-3-root-users-2-without-passwords-why [2]: http://www.cyberciti.biz/faq/mysql-change-root-password/
根据我的经验,你可以在这个路径/etc/mysql/mysql.conf.d/mysqld.cnf
下找到配置文件。
(我努力了一段时间才找到这个路径)
在我的案例中,我试图在cent操作系统上连接到一个远程mysql服务器。在经历了很多解决方案(授予所有权限,删除ip绑定,启用网络)之后,问题仍然没有得到解决。
结果,在研究各种解决方案时,我遇到了iptables,它使我意识到mysql端口3306不接受连接。
下面是我如何检查和解决这个问题的一个小说明。
telnet(mysql服务器ip)[portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables stop
希望这有帮助。
请按照下面提到的步骤来设置MySQL用户的通配符远程访问。
(1)打开cmd. (2)打开cmd; 。 (2)导航到路径C:\Program Files\MySQL\MySQL Server 5.X/bin,并。
运行这个命令。 运行这个命令。
mysql -u root -p。
(3) 输入根密码。
(3)输入根密码。 (3)输入根密码。 (4)执行以下命令,提供权限。 (4)执行以下命令提供权限。 (4) 执行下面的命令来提供权限。 *GRANT ALL PRIVILEGES ON*.\ TO 'USERNAME'@'IP' IDIFIED BY
'PASSWORD'; ;。
USERNAME.你希望连接到MySQL服务器的用户名。 你希望连接到MySQL服务器的用户名。
USERNAME:你希望连接到MySQL服务器的用户名。 IP:你希望连接MySQL服务器的用户名。 IP:你希望允许访问MySQL服务器的公共IP地址。 公共IP地址:你希望允许访问MySQL的地方。 服务器。 服务器。
PASSWORD。 所用用户名的密码。
PASSWORD:使用的用户名的密码。 PASSWORD:使用的用户名的密码。 IP可以用%代替,允许用户从任何IP连接。 地址。 地址。 地址。 >。 (5)按以下命令刷新前置权限并退出。
(5)按以下命令刷新前置权限并退出。 (5)通过以下命令刷新前置权限并退出。 FLUSH PRIVILEGES;。
exit;。 或 q
[![在此输入图像描述][1]][1]
这篇博客[如何在局域网上设置MySQL服务器][1]对从头开始设置 "MySQL "很有帮助。
如果mysqld
的绑定地址设置为回环/本地地址(例如:127.0.0.1
),则远程主机将无法访问该服务器,因为任何远程主机都无法访问回环接口。
127.0.0.1
),服务器将无法从远程主机访问,因为从任何远程主机都无法访问回环接口。
将此选项设置为0.0.0.0
(::
为IPv4+6),以接受来自任何主机的连接,如果你想只允许在一个接口上的连接,则设置为另一个外部可到达的地址。
有时需要使用Windows上的计算机名称。
第一步)把mysql的配置文件。
mysqld.cnf SET bind-address= 0.0.0.0。
(让recibe连接通过tcp/ip)
第二步)在mysql中建立用户,表用户,用windows上PC的名字属性,不是ip。
[![在此输入图像描述][1]][1]