MySQL远程连接设置

这只是一个简单MySQL设定。但很多图简单,却忽略了安全性。所以对设置中的细节和含义需要弄到清清楚楚才行。

下面是步骤:

1、登陆本地的mysql Server:

#mysql -uroot -p

输入密码后进入mysql。参数-u是输入用户名,这里是用root登陆,-p是要输入密码。

2、使用并查看mysql用户访问权限

>use mysql;
>select host,user from user;

3、可以看到root用户自能在本地访问(使用mysql默认安装方式)。如果要运行远程访问,就要增加权限:

>GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

这里要说明几点:ALL PRIVILEGES是指数据库所有操作;*.*是指在mysql数据库中的所有数据库与数据表;%是指运行外部所有IP来访问。而myuser与mypassword是你要授权用户的用户名与和密码。

这里给了该用户这个数据库的所有权限。但在实际应用中,这样就这管理员就不负责任啦。

>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3′ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

下面是较好的做法:

>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.2′ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
>GRANT ALL PRIVILEGES ON mydb.* TO ‘other’@’192.168.1.2′ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

第一条提供了root能够从内网192.168.1.2的机器访问这个数据库

第二条提供了other能够从内网192.168.1.2的机器访问这个数据库中mydb数据的所有表

4、为了能够立刻是以上设置生效,执行:

>FLUSH PRIVILEGES;

这是让mysql Server从新加载授权表。

相关推荐