实现客户端连接Mysql数据库服务器

以前学习mysql的时候,都是部署在本机,这样不存在客户端主机与服务器主机连接的问题,都是直接用localhost登录就行。

今天因项目需要,我们把mysql部署在服务器上,然后客户端装了client,这样就遇到客户端连接数据库服务器的问题。折腾了蛮久,发现即使是默认的root账户也没能连上服务器。把今天的解决过程记录如下:

1、在服务器上安装好mysql server 后,在公司内网开通3306端口(mysql的默认端口);同时,服务器也要支持外网的访问,又增加外网端口的访问权限。最后,在客户端主机,通过"telnet"命令,检查3306端口已经可以通过客户端主机连接了。

2、客户端装好mysql client,发现root用户无法连接,也就是客户端无法用workbench实现数据库、用户、数据表等的操作。这里有两个办法,一个是直接先授权root用户,可以在任何主机访问,然后再新建数据库、添加表等;另一种方法,是通过服务器端mysql指令,添加新数据库,新的用户,然后赋予用户所有主机的连接权限,算是一步到位。

方法一: 将root用户的权限改成任何主机都能访问:

在服务器上,运行MySQL 5.7 Command Line Client,然后执行以下命令:

(1)use mysql;              进入mysql数据库

(2)select host,user,password from user;  查询数据库的用户信息

(3)update user set host='%' where host='localhost';   将上表中root的访问主机改为所有

(4)flush privileges;       刷新权限

(5)exit;  退出mysql

完成以上步骤,在客户端主机workbench中,用root/password,即可登陆了。

 

方法二:直接通过mysql命令,创建数据库,用户信息,以及客户端主机访问权限设置。

在服务器上,运行MySQL 5.7 Command Line Client,然后执行以下命令:

(1)show databases;    查看mysql服务器上已经存在的数据库。下面新建时,避免建重复的数据库

(2)create database SZY;    创建数据库“SZY”

(3)create user szy identified by "szy";   创建szy用户,设定密码szy

(4)grant all privileges on SZY.*to'szy'@'%'identified by 'szy' with grant option;   给用户赋予指定数据库的所有权限,并允许任何客户端主机连接

(5)flush privileges;  刷新上面权限设置

(6)exit;  退出mysql

完成以上命令,在客户端尝试连接,如下:

 

注意:关于sql命令直接在服务器上的mysql命令管理器质性就行;每个sql命令都必须以“;”结束,否则报错,或质性不成功。

posted on 2015-09-07 20:57  pengjw  阅读(16363)  评论(0编辑  收藏  举报

导航