1. localhost与127.0.0.1的区别
1.1 localhost与127.0.0.1
localhost也叫local ,正确的解释是:本地服务器 ,127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)
1.2 localhost与127.0.0.1访问区别
localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。 127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。 有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。
2. 远程连接
由于mysql本身并没有给相应的本机的IP创建访问权限,所以在允许其它用户访问自己的mysql之前,需要先给自己的IP地址授权,其过程与如下类似,只是改变一下IP而已。
2.1 mysql 5.7版本
首先,cmd下切换到mysql的操作环境下。
2.1.1 登录
mysql -u root -p
之后输入密码进行登陆
2.1.2 权限设置及说明
2.1.2.1 添加远程ip访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.30.43.100' IDENTIFIED BY '123486' WITH GRANT OPTION;
flush privileges;
2.1.2.2 命令解释
命令解释见2.2.2.2
2.2 mysql 8.0版本
mysql 8.0版本的连接与mysql 5.7版本 的连接基本是一样的,唯一的不同就是在添加远程ip访问权限时不需要添加(IDENTIFIED BY '123486')密码这个语句,若添加此语句后,是不能授权成功的,已经过多次试验。下边是直接在mysql编辑环境下操作,其具体过程如下:
2.2.1 权限设置及说明
2.2.2.1 添加远程ip访问权限
use mysql;
CREATE USER 'root'@'192.30.43.100' IDENTIFIED BY '123486';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.30.43.100' WITH GRANT OPTION;
flush privileges;
2.2.2.2 命令解释
第二行中,CREATE USER 'root'@'192.30.43.100' IDENTIFIED BY '123486' 是创建一个供192.30.43.100IP地址访问的root账户,密码是123486。即允许来自192.30.43.100的连接并使用root账户和123486这个密码进行访问。
第三行中,GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.30.43.100' WITH GRANT OPTION;是给192.30.43.100IP地址授权,让192.30.43.100这个IP地址具有访问的权限。其中ALL PRIVILEGES ON 后面的*.*表示所有数据库,即完全访问权限,可以指定为特定数据库。
第四行是使设置立刻生效。
3. 总结
以上所有操作,其实就是在mysql库的user表,添加了一条新的记录,相应的:Host=特定ip,User=允许登录的用户名,Password=密码等等。
另:若有任何问题可以私信。如有不同方法见解欢迎评论、转载、交流。