天天看點

盤點Mysql的登陸方式

盤點Mysql的登陸方式

前置知識#

我們想登陸到mysql中前提是肯定需要一個使用者名和密碼:比如 root root

在mysql中使用者的資訊會存放在 mysql資料庫下的 user表中

可以 use mysql 然後select * from userG;檢視到系統上的所用的使用者資訊;

其中有一列叫做HOST,HOST的不同值決定了使用者擁有不同的登陸方式:比如:

辨別符 含義

% 任意ip均等登陸

localhost 隻允許本地登陸

127.0.0.1 隻允許本地登陸

sv1 主機名為sv1的機器可登入,主機名可以在 /etc/hostname中檢視

::1 本機可登入

是以在登陸前,請确定你的使用的登陸使用者的HOST列中有相應的配置

騷氣的登陸#

在mac上登陸華為雲的伺服器

Copy

MacBook-Pro% ssh 'root'@'139.9.92.123'

[email protected]'s password:

Last failed login: Fri May 29 11:03:42 CST 2020 from 202.85.208.14 on ssh:notty

There was 1 failed login attempt since the last successful login.

Last login: Thu May 28 16:36:32 2020 from 202.85.208.7

Welcome to Huawei Cloud Service
           

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

[root@139 ~]#

在mac上遠端登陸伺服器上的mysql

MacBook-Pro% ./mysql -h139.9.92.123 -uroot -reqw123.. -P3306

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 2174

Server version: 5.7.29 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

  1. Other names may be trademarks of their respective

    owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> show databases;
Database
information_schema

mac登陸本地的mysql

如果你有配置環境變量,在任何目錄下系統都識别mysql指令

你可以直接像下面這樣登陸:

MacBook-Pro% mysql -uroot -p

Enter password:

Your MySQL connection id is 2

Server version: 5.7.30 MySQL Community Server (GPL)

mysql>

如果你沒有配置環境變量,系統就不能直接識别mysql指令,需要你進入到mysql安裝目錄下的bin檔案下,找到mysql指令,然後執行登陸的動作

MacBook-Pro% /usr/local/mysql/bin/mysql -uroot -p

Your MySQL connection id is 3

也可以用遠端登陸的方式登陸本地mysql

MacBook-Pro% mysql -h127.0.0.1 -uroot -proot -P3306

Your MySQL connection id is 4

assignment
cal

本地登陸

我們可以借助mysql.sock實作本地登陸。

那這個mysql.sock是什麼?

很直覺的我們得知道這個mysql.sock的作用,通過它我們可以實作mysql的本地登陸。

mysql.sock應該是mysql的主機和客戶機在同一host(實體伺服器)上的時候,使用unix domain socket做為通訊協定的載體,它比tcp快。

通過指令可以檢視到mysql.sock的位置。

MacBook-Pro% netstat -ln | grep mysql

64e3f4c55eb824d7 stream 0 0 64e3f4c5614859a7 0 0 0 /tmp/mysql.sock

記下這個 mysql.sock的位址。接下來我們會建立一個配置檔案,你找個看着比較順眼的目錄放置這個配置檔案。

我實在這樣建立的:

MacBook-Pro% sudo mkdir etc

MacBook-Pro% ls -l

total 552

-rw-r--r-- 1 root wheel 275235 Mar 24 01:35 LICENSE

-rw-r--r-- 1 root wheel 587 Mar 24 01:35 README

drwxr-xr-x 40 root wheel 1280 Mar 24 02:45 bin

drwxr-x--- 27 _mysql _mysql 864 May 28 20:44 data

drwxr-xr-x 5 root wheel 160 Mar 24 02:44 docs

drwxr-xr-x 2 root wheel 64 May 29 11:39 etc

drwxr-xr-x 53 root wheel 1696 Mar 24 02:44 include

drwxr-x--- 3 _mysql _mysql 96 May 28 20:44 keyring

drwxr-xr-x 11 root wheel 352 May 13 09:16 lib

drwxr-xr-x 4 root wheel 128 Mar 24 02:44 man

drwxr-xr-x 39 root wheel 1248 Mar 24 02:44 share

drwxr-xr-x 6 root wheel 192 May 28 19:20 support-files

MacBook-Pro% cd etc

MacBook-Pro% sudo touch user.root.cnf

MacBook-Pro% sudo vim user.root.cnf

然後在 user.root.cnf 中添加如下的配置:

[client]

user=root

password=root

socket=/tmp/mysql.sock

好了,現在可以這樣實作本地登陸

MacBook-Pro% ../bin/mysql --defaults-extra-file=./user.root.cnf

Your MySQL connection id is 6

花裡胡哨的本地登陸

有時候,你可能會看到其他大佬登陸mysql時使用: mysql.local 騷氣十足的本地登陸mysql

他是怎麼做到的呢?可以借助alias+mysql.sock實作:

為我們的登陸mysql的指令添加别名,像下面這樣:

MacBook-Pro% alias mysql.local='/usr/local/mysql/bin/mysql --defaults-extra-file=/usr/local/mysql/etc/user.root.cnf'

MacBook-Pro% mysql.local

Your MySQL connection id is 7

從此,你也可以騷氣登陸mysql

我是bloger 賜我白日夢 , 歡迎關注我,後續一定分享mysql相關知識點

作者: 賜我白日夢

出處:

https://www.cnblogs.com/ZhuChangwu/p/12987168.html