如何让本机mysql可以远程连接
问题:自己机器上装的mysql数据库,如何才能让局域网内别的机器也能通过本机IP来连接呢?或者说在自己机器上如何通过ip而不是localhost和127.0.0.1来连接数据库?
解决方案:开启mysql远程连接账号。
步骤:
1)登陆mysql。(mysql -uroot -proot)
2)创建远程登陆用户并授权
> grant all PRIVILEGES on test_db.* to root@'192.168.1.101' identified by '123456';
上面的语句表示将 test_db 数据库的所有权限授权给 root 这个用户,允许 root 用户在 192.168.1.101 这个 IP 进行远程登陆,并设置 root 用户的密码为 123456 。
3)执行了上面的语句后,再执行下面的语句,方可立即生效。
> flush privileges;
注:此刻应该已经可以远程连接了,如何还是无法远程连接,需要将mysql所在机器的防火墙关闭,具体方法自行搜索。
下面逐一分析步骤2中所有的参数的含义:
-- all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限。
例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。
-- test_db.* 表示上面的权限是针对于哪个表的,test_db指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授权为“数据库名.表名”。
-- root 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
-- 192.168.1.101 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
-- 123456 为用户的密码。