大多的MySQL都是装在Linux上的,而我们的windowns本机上一般都会装MySQL-Front.那如何用MySQL-Front连接远端Linux系统上的mysql呢?
用MySQL-Front连接远端的MYSQL就会有些问题。大多提示1045错误:
首先让我们看一下远端MYSQL的用户表
|
由此我们可以看到root用户仅允许本地(localhost)登录,如果要远程登录该mysql服务器的话,就需要新建一个普通权限的用户,新建用户使用如下命令:
mysql>grant select,update,insert,delete on test.* to duan@localhostidentified by "123456";
在看下我们的用户和对应的主机:
这句命令的意思是:新建用户duan,并且只允许该用户在本地(localhost)登录,密码是123456,并且赋予它对test库中所有表select,update,insert的权限。我们在这有一个test库,所以用test.*代表test库下的所有表。如果要对所有的表,包括mysql库的表都有操作权限则可以替换成“*.*”.
现在该duan用户,已经可以登录mysql了,但是也还是只能本地登录。若要duan用户可以远程登录mysql,则还需要如下命令:
mysql>update user set host = '%' where user = 'duan';
现在我们再查看mysql的管理库:
通过以上操作,我们知道其实用root用户也可以远程登录mysql的,就是把root的host字段改成%即可(注意:有的时候这个权限允许远程连接,但是有可能还是连接不是,这时候就是防火墙的问题了,我们可以把防火墙关掉),但是强烈不建议如此做,否则会带来严重的安全风险。
如果非要这么做,语句如下:
好了,我们可以连接我们的远端mysql了,在MySQL-Front上新建连接,输入连接名,远端的Linux的IP地址,输入用户名duan和密码123456,选择连接端口,mysql默认的是3306,OK,连接会出问题:
刚刚我们执行了一下语句
mysql>update user set host = '%' where user = 'duan';
却没有执行以下语句:
mysql>flush privileges;
再去连接就成功了!
但这是连上之后,只可以操作test数据库,用下面的语句添加其可以操作的数据库。
mysql>grant select,update,insert,delete on nms_db.* to duan;
添加用户duan对数据库nms_db具有查询,更新,插入,删除操作,这样在mysql-front里面就可以操作nms_db数据库了。