版权声明本文原创作者谷哥的小弟作者博客地址http://blog.csdn.net/lfdfhl在Windows中使用Navicat连接Linux服务器中的MySQL时除了保证3306端口能够正常访问还需要使用允许远程登录的MySQL账号。本例创建devuser账号并为该账号授予数据库操作权限。登录MySQL首先在Linux服务器中使用MySQL的root账户登录数据库rootiZuf6b6jn2nrwa2q1kdxlcZ:~# mysql -u root登录成功后终端进入MySQL命令行环境提示符变为mysql后续创建账号、授权和查询账号信息等操作均在MySQL命令行中完成。创建账号MySQL账号由用户名和允许登录的主机共同确定。创建账号的基本格式如下CREATEUSER用户名主机IDENTIFIEDBY密码;本例创建用户名为devuser的账号并将密码设置为123456mysqlCREATEUSERdevuser%IDENTIFIEDBY123456;其中devuser表示用户名%表示允许该账号从任意主机连接MySQLIDENTIFIED BY用于设置账号密码。执行结果如下Query OK, 0 rows affected (0.23 sec)结果表明devuser%账号已经创建成功。授予账号权限创建账号后还需要为账号授予相应的数据库操作权限。本例执行以下命令mysqlGRANTALLPRIVILEGESON*.*TOdevuser%;其中ALL PRIVILEGES表示授予全部可授予权限*.*表示所有数据库中的所有表devuser%表示前面创建的账号。执行结果如下Query OK, 0 rows affected (0.01 sec)结果表明授权操作已经完成。本例主要用于远程连接测试因此为devuser授予了较大的权限范围。实际项目中应根据账号用途分配相应权限避免授予不必要的数据库操作权限。验证账号完成账号创建和授权后执行以下SQL语句查询devuser账号mysqlSELECTUser,HostFROMmysql.userWHEREUserdevuser;执行结果如下--------------- | User | Host | --------------- | devuser | % | --------------- 1 row in set (0.00 sec)查询结果中的User为devuserHost为%表明MySQL中已经存在devuser%账号并允许该账号从任意主机发起连接。完成以上配置后可以在Navicat中使用ECS公网IP、3306端口、devuser用户名和对应密码连接MySQL。总结MySQL远程客户端除了能够连接服务器的3306端口还需要使用相应的MySQL账号登录数据库。本例使用CREATE USER创建devuser%账号通过IDENTIFIED BY设置账号密码再使用GRANT授予数据库操作权限。最后查询mysql.user表确认账号已经创建成功并允许从远程主机连接MySQL。