不管何种数据库,使用的第一步都是先登录。
MySQL命令行登录语句:mysql -u username -P port -p -D database_name
登录MySQL的报错一般从报错信息都能得到反馈,常见报错原因分析如下,实例中的以test用户为例,登录环境为linux centos 7.8,MySQL 5.7,虚拟机ip 10.168.1.10,数据库实例监听端口 3306 :
1、网络不通,包括了ip不通、端口不通
错误或者不通的ip登录会报错ERROR 2003 (HY000)
[mysql@node01 ~]$ mysql -utest -h192.168.1.9 -P 3306 -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.9' (113)
错误或者不通的端口登录会报错ERROR 2003 (HY000)
[mysql@node01 ~]$ mysql -utest -h192.168.1.10 -P 3307 -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.10' (111)
2、用户名或者密码不正确
错误的密码报错ERROR 1045 (28000)
[mysql@node01 ~]$ mysql -utest -h192.168.1.10 -P 3306 -p
Enter password:
ERROR 1045 (28000): Access denied for user 'test'@'192.168.1.10' (using password: YES)
错误的用户名报错ERROR 1045 (28000)
[mysql@node01 ~]$ mysql -utest1 -h192.168.1.10 -P 3306 -p
Enter password:
ERROR 1045 (28000): Access denied for user 'test1'@'192.168.1.10' (using password: YES)
3、权限不足
登录没有权限的数据库 报错ERROR 1044 (42000)
test用户当前只对hr库有访问权限,接下来登录其他库进行测试。
[mysql@node01 ~]$ mysql -utest -h192.168.1.10 -P 3306 -p -D mydb
Enter password:
ERROR 1044 (42000): Access denied for user 'test'@'%' to database 'mydb'
从没有登录权限的ip上访问数据库报错ERROR 1045 (28000)
删除test用户后重新指定test用户只能从localhost登录。
从ip为192.168.1.8的客户端上登录MySQL报错如下:
[root@node2 /]# mysql -utest -h192.168.1.10 -P3306 -p
Enter password:
ERROR 1045 (28000): Access denied for user 'test'@'192.168.1.8' (using password: YES)
4、MySQL服务未启动
关闭MySQL服务后,连接MySQL报错ERROR 2003 (HY000)
[root@node2 /]# mysql -utest -h192.168.1.10 -P3306 -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.10' (111)