盤點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
-
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