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