mysql登录方式
① socket
[root@Lx ~]# mysql -uroot -p123456 -S /tmp/mysql.sock
解释说明:
这种没有指定ip没有指定host的形式就是socket形式;假如本地有多个mysql,就可以使用这种形式去登录;
-S 指定sock文件路径;
或ps aux|grep mysqld查看- -socket=路径,做软链接再默认指向的目录下;
② tcp/ip
[root@wy ~]# mysql -uroot -p123456 -hlocalhost -P3306
解释说明:
-P 服务器监听的mysql端口;
-p 密码
-h 指定user表中存在的user与host;指定远程主机ip;(localhost也就是127.0.0.1)
###################-h指定自己机器的ip来做此实验####################
[root@wy ~]# mysql -uroot -p123456 -h192.168.219.128 -P3306
ERROR 1130 (HY000): Host '192.168.219.128' is not allowed to connect to this MySQL server
## 错误提示不能登录,那就测一下有没有监听此ip的3306端口
[root@wy ~]# telnet 192.168.219.128 3306
Trying 192.168.219.128...
Connected to 192.168.219.128.
Escape character is '^]'.
HHost '192.168.219.128' is not allowed to connect to this MySQL serverConnection closed by foreign host.
解释说明:
虽然通了,但是还是不允许连接,是因为还没有给它授权。上面的localhost能连接登录,是因为授权了。
## 给192.168.219.128授权,让其登录
[root@wy ~]# mysql -uroot -p123456 -hlocalhost -P3306
mysql> grant all on *.* to 'root'@'192.168.219.128' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
解释说明:
*.* 前面的*是所有库,后面的*是所有表;
@后面的ip呢,其实是指的客户端的ip,你给谁授权,这就写谁,只不过,在这用的是自己的机器作的实验;
## 查看一下是否授权成功
mysql> use mysql;
mysql> select * from user where host='192.168.219.128'\G; ## \G列式显示,更清晰
*************************** 1. row ***************************
Host: 192.168.219.128
User: root
Password: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
## 授权成功后,用此ip登录mysql
mysql> quit
[root@wy ~]# mysql -uroot -p123456 -h192.168.219.128 -P3306
mysql>
## 查看当前登录用户
mysql> select user();
+----------------------+
| user() |
+----------------------+
| root@192.168.219.128 |
+----------------------+
1 row in set (0.00 sec)
######################################################################