欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    創(chuàng): 管長龍 譯

    作者:Carlos Tutte、Marcos Albe翻譯:管長龍


    在我們學習 MySQL 或從事 MySQL DBA 工作期間,時常會遇到:“我嘗試連接到 MySQL 并且收到1045 錯誤,但我確定我的用戶和密碼都沒問題”。

    不管你現(xiàn)在是否是高手還是高高手,都不可避免曾經(jīng)在初學的時候犯過一些很初級的錯誤,例如:用戶名密碼都填錯了。而且工作一段時間后也偶爾會遇到一些不常見錯誤原因。

    一、連接錯誤的主機

    [root@localhost ~]# mysql -u root -p123456
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    

    如果未指定要連接的主機(使用 -h 標志),則 MySQL 客戶端將嘗試連接到 localhost 實例,同時您可能嘗試連接到另一個主機端口實例。

    修復:仔細檢查您是否嘗試連接到 localhost,或者確保指定主機和端口(如果它不是 localhost):

    [root@localhost ~]# mysql -u root -p123456 -h <IP> -P 3306
    


    二、用戶不存在

    [root@localhost ~]# mysql -u nonexistant -p123456 -h localhost
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user 'nonexistant'@'localhost' (using password: YES)
    

    修復:仔細檢查用戶是否存在:

    mysql> SELECT User FROM mysql.user WHERE User='nonexistant';
    Empty set (0.00 sec)
    

    如果用戶不存在,請創(chuàng)建一個新用戶:

    mysql> CREATE USER 'nonexistant'@'localhost' IDENTIFIED BY 'sekret';
    Query OK, 0 rows affected (0.00 sec)
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.01 sec)
    


    三、用戶存在但客戶端主機無權(quán)連接

    [root@localhost ~]# mysql -u nonexistant -p123456
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user 'nonexistant'@'localhost' (using password: YES)
    

    修復:您可以通過以下查詢檢查 MySQL 允許連接的主機用戶/主機:

    mysql> SELECT Host, User FROM mysql.user WHERE User='nonexistant';
    +-------------+-------------+
    | Host | User |
    +-------------+-------------+
    | 192.168.0.1 | nonexistant |
    +-------------+-------------+
    1 row in set (0.00 sec)
    

    如果需要檢查客戶端連接的 IP,可以使用以下 Linux 命令來獲取服務(wù)器 IP:

    [root@localhost ~]# ip address | grep inet | grep -v inet6
    inet 127.0.0.1/8 scope host lo
    inet 192.168.0.20/24 brd 192.168.0.255 scope global dynamic wlp58s0
    

    或公共IP:

    [root@localhost ~]# dig +short myip.opendns.com @resolver1.opendns.com
    177.128.214.181
    

    然后,您可以創(chuàng)建具有正確主機(客戶端 IP)的用戶,或使用'%'(通配符)來匹配任何可能的 IP:

    mysql> CREATE USER 'nonexistant'@'%' IDENTIFIED BY '123456';
    Query OK, 0 rows affected (0.00 sec)
    


    四、密碼錯誤,或者用戶忘記密碼

    mysql> CREATE USER 'nonexistant'@'%' IDENTIFIED BY '123456';
    Query OK, 0 rows affected (0.00 sec)
    

    修復:檢查和/或重置密碼:

    您無法從 MySQL 以純文本格式讀取用戶密碼,因為密碼哈希用于身份驗證,但您可以將哈希字符串與“PASSWORD”函數(shù)進行比較:

    mysql> SELECT Host, User, authentication_string, PASSWORD('forgotten') FROM mysql.user WHERE User='nonexistant';
    +-------------+-------------+-------------------------------------------+-------------------------------------------+
    | Host | User | authentication_string | PASSWORD('forgotten') |
    +-------------+-------------+-------------------------------------------+-------------------------------------------+
    | 192.168.0.1 | nonexistant | *AF9E01EA8519CE58E3739F4034EFD3D6B4CA6324 | *70F9DD10B4688C7F12E8ED6C26C6ABBD9D9C7A41 |
    | % | nonexistant | *AF9E01EA8519CE58E3739F4034EFD3D6B4CA6324 | *70F9DD10B4688C7F12E8ED6C26C6ABBD9D9C7A41 |
    +-------------+-------------+-------------------------------------------+-------------------------------------------+
    2 rows in set, 1 warning (0.00 sec)
    

    我們可以看到 PASSWORD('forgotten')哈希與 authentication_string 列不匹配,這意味著 password string='forgotten' 不是正確的登錄密碼。

    如果您需要覆蓋密碼,可以執(zhí)行以下查詢:

    mysql> set password for 'nonexistant'@'%'='hello$!world';
    Empty set (0.00 sec)
    


    五、Bash 轉(zhuǎn)換密碼中的特殊字符

    [root@localhost ~]# mysql -u nonexistant -phello$!world
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user 'nonexistant'@'localhost' (using password: YES)
    

    修復:通過在單引號中包裝密碼來防止 bash 解釋特殊字符:

    [root@localhost ~]# mysql -u nonexistant -p'hello$!world'
    mysql: [Warning] Using a password on the command line interface can be insecure
    ...
    mysql>
    


    六、SSL 是必須的,但客戶沒有使用

    mysql> create user 'ssluser'@'%' identified by '123456';
    Query OK, 0 rows affected (0.00 sec)
    mysql> alter user 'ssluser'@'%' require ssl;
    Query OK, 0 rows affected (0.00 sec)
    ...
    [root@localhost ~]# mysql -u ssluser -p123456
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user 'ssluser'@'localhost' (using password: YES)
    

    修復:添加 -ssl-mode 標志(-ssl 標志已棄用但也可以使用)

    [https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-11.html]

    [root@localhost ~]# mysql -u ssluser -p123456 --ssl-mode=REQUIRED
    ...
    mysql>
    

    最后,如果您真的被鎖定并需要繞過身份驗證機制以重新獲得對數(shù)據(jù)庫的訪問權(quán)限,請執(zhí)行以下幾個簡單步驟:

    1. 停止實例
    2. 編輯 my.cnf 并在 [mysqld] 下添加 skip-grant-tables(這樣可以在不提示輸入密碼的情況下訪問 MySQL)。在 MySQL 8.0 上,跳過網(wǎng)絡(luò)是自動啟用的(只允許從 localhost 訪問 MySQL),但對于以前的 MySQL 版本,建議在 [mysqld] 下添加 -skip-networking
    3. 啟動實例
    4. 使用 root 用戶訪問(mysql -uroot -hlocalhost);
    5. 發(fā)出必要的 GRANT / CREATE USER / SET PASSWORD 以糾正問題(可能設(shè)置一個已知的 root 密碼將是正確的事情:SET PASSWORD FOR 'root'@'localhost'='S0vrySekr3t'
    6. 停止實例
    7. 編輯 my.cnf 并刪除 skip-grant-tables 和 skip-networking
    8. 再次啟動 MySQL
    9. 您應(yīng)該能夠使用 roothost 從 root 用戶登錄,并對 root 用戶執(zhí)行任何其他必要的糾正操作。

    本文按常見到復雜的順序?qū)⒖赡軋?1045 的錯誤原因全部列舉出來,看完了還不趕快收藏!

    參考:https://www.percona.com/blog/2019/07/05/fixing-a-mysql-1045-error/

    PS :今天上傳了一個項目在服務(wù)器上面,然后數(shù)據(jù)庫出現(xiàn)錯誤,在網(wǎng)上找了各種方法,親測一下有用;

    1 修改MySQL配置文件,使得可以無密碼登錄mysql

    [mysqld]項下添加

    skip-grant-tables

    2.重啟mysql服務(wù)

    sudo service mysql restart

    3.無密碼登錄mysql

    mysql -uroot -p

    4.修改管理員密碼

    use mysql;

    update user set password=password('123') where user='root';

    flush privileges;

    exit;

    5.還原配置文件

    sudo vim /etc/mysql/my.cnf #skip-grant-tables(注釋或刪除)

    6.可以使用下面的命令登錄

    mysql -uroot -p123

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有