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)

######################################################################