您好,登錄后才能下訂單哦!
本文主要給大家介紹MySQL數據庫成功登錄方法,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL數據庫成功登錄方法吧。
在數據庫變更, 維護等工作中要多次進行登錄,這里以數據庫管理用戶root@localhost進行說明, 一般會有下面的命令行:
mysql@db01: ~$ mysql --host=localhost --password --port=3306 --socket=/home/3306/mysql.sock--user=root
Enter password:
若每次都敲入或粘貼這一長串命令, 然后再輸入密碼, 感覺真是不夠方便快捷.
在MySQL 5.0, 5.5等較早版本中, 可進行如下操作, 為了便于說明, 下面以mysql用戶(非root)登錄數據庫所在的Linux操作系統.
在mysql用戶家目錄下建立隱藏文件.my.cnf,注意權限要設置為600, 里面寫入上面命行中的各參數,由于其和登錄相關, 暫且稱為登錄文件, 查看如下:
mysql@db01: ~$ ls -al .my.cnf
-rw-------. 1 mysql mysql 99Aug 17 21:31 .my.cnf
mysql@db01: ~$ cat .my.cnf
[client]
host = localhost
password = 123456
port = 3306
socket = /home/3306/mysql.sock
user = root
然后直接在命令行敲入mysql(MySQL命令行工具), 回車就可登錄數據庫了.
在MySQL 5.6(5.6.6)及之后版本, 有了命令mysql_config_editor,能比較優美的完成上面需求.
使用mysql_config_editor建立登錄文件, 如下命令行上--login-path=mytest中的mytest, 稱為登錄路徑(loginpath).
mysql@db01: ~$mysql_config_editor set --host=localhost --login-path=mytest --password--user=root --socket=/home/3306/mysql.sock --port=3306
Enter password: <- 此處輸入密碼123456,回車即可
這時也會在用戶家目錄下生成一個隱藏文件, 名稱是.mylogin.cnf,觀察該登陸文件的特點: 是被加密的, 顯示其內容時, 密碼也被星號替換了.
mysql@db01: ~$ ls -al.mylogin.cnf
-rw-------. 1 mysql mysql 192Aug 17 21:39 .mylogin.cnf
mysql@db01: ~$ file.mylogin.cnf
.mylogin.cnf: data
mysql@db01: ~$mysql_config_editor print --all
[mytest]
user = root
password = *****
host = localhost
socket = /home/3306/mysql.sock
port = 3306
然后按如下命令行測試, 即可登入數據庫.
mysql@db01: ~$ mysql--login-path=mytest
若想在登錄文件中添加第二個登錄路徑, 怎么做呢… 只需要調整上面mysql_config_editor命令行中相應參數值即可, 然后查看登錄文件:
mysql@db01: ~$mysql_config_editor print --all
[mytest]
user = root
password = *****
host = localhost
socket = /home/3306/mysql.sock
port = 3306
[myremote]
user = root
password = *****
host = 192.168.138.134
port = 3306
又若想修改登錄路徑myremote的密碼, 即password的值, 又怎么做呢…
a. 刪除登錄路徑myremote
mysql@db01: ~$mysql_config_editor remove --login-path=myremote
b. 查看登錄文件, 確認其已刪除, 只剩下mytest
mysql@db01: ~$mysql_config_editor print --all
[mytest]
user = root
password = *****
host = localhost
socket = /home/3306/mysql.sock
port = 3306
c. 添加登錄路徑myremote,重新設定新密碼
mysql@db01: ~$mysql_config_editor set --host=192.168.138.134 --login-path=myremote --password--user=root --port=3306
Enter password:
到這里, 命令mysql_config_editor就基本介紹完了.
最后看一個問題, 在登錄路徑mytest中, 刪除socket的信息, 是否還能登錄呢…
mysql@db01: ~$ mysql_config_editor remove --login-path=mytest --socket
mysql@db01: ~$mysql_config_editor print --login-path=mytest
[mytest]
user = root
password = *****
host = localhost
port = 3306
測試發現, 還是可以登錄的, 明明缺少了socket的信息呀…
確實是這樣, 只因為mysql會按照該順序/etc/my.cnf,/etc/mysql/my.cnf, /usr/local/mysql/etc/my.cnf, ~/.my.cnf尋找需要的socket參數, 使用如下方式可獲取這些文件的信息(根據MySQL安裝的不同, 可能某些文件的路徑不同):
mysql@db01: ~$ mysql --help |grep -A 1 'Default options'
Default options are read fromthe following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf/usr/local/mysql/etc/my.cnf ~/.my.cnf
注意, 若這些文件中有相同的參數,后面文件中的參數會覆蓋前面文件的; 對于登錄路徑mytest中已有的參數, mysql則不會再尋找.
上面不是還保留著文件.my.cnf嘛, mysql會從中找到socket =/home/3306/mysql.sock, 然后就登陸進去了.
驗證下, 在文件.my.cnf中, 添加井號#, 注釋掉socket行, 然后再嘗試登錄, 發現報錯了:
mysql@db01: ~$ mysql--login-path=mytest
ERROR 2002 (HY000): Can'tconnect to local MySQL server through socket '/tmp/mysql.sock' (2)
看完以上關于MySQL數據庫成功登錄方法,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。