【mysql連接報錯總結】

1.前提條件

首先,數據正常運行的,不是一個壞的庫;其次,數據庫環境變量配置正確,保證能找到bin工具接口。

2.首次安裝後連接報錯

尋找臨時root密碼

[root@ufo130 mysql]# grep 'temporary password' /var/log/mysqld.log|awk '{print $NF}'
YjR&%Oojo4g_

臨時登錄、修改root密碼、刷新權限表(修改的密碼必須滿足密碼策略:字母大小寫、數字和特殊字符,長度不小於8)

[root@ufo130 mysql]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.19

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

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ufo_123456'; 
Query OK, 0 rows affected (0.09 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

重啓生效

[root@ufo130 mysql]# service mysqld restart
停止 mysqld: 		[確定]                                             
正在啓動 mysqld:   	[確定] 

2.參數限制問題

my.cnf(重啓生效) 和全局參數(set global 參數=值;立即生效,除本會話外都有效),可同時設置。

#端口
prot=3306

#允許訪問的ip網段
bind-address = 0.0.0.0

#跳過密碼登錄(root密碼丟失時臨時設置登錄)
#skip-grant-tables

#主要用於MyISAM存儲引擎,如果多臺服務器連接一個數據庫則建議註釋下面內容
skip-external-locking

#只能用IP地址檢查客戶端的登錄,不用主機名
skip_name_resolve = 1

#設置client連接mysql時的字符集,防止亂碼
init_connect=‘SET NAMES utf8mb4’

#最大連接數
max_connections = 400

#最大錯誤連接數
max_connect_errors = 1000

#MySQL連接閒置超過一定時間後(單位:秒)將會被強行關閉,#MySQL默認的wait_timeout 值爲8個小時,interactive_timeout參數需要同時配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

3.忘記root密碼

1.配置my.cnf參數,重啓數據庫

skip-grant-tables

2.重啓成功後,可無密登錄

[root@ufo130 ~]# mysql

3.修改root密碼(需滿足密碼策略),刷新權限表,重啓生效

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ufo_123456'; 
mysql> flush privileges;
[root@ufo130 ~]# service mysql.server restart

4.權限限制問題

Mysql權限系統通過下面幾個階段進行人證
1.對連接的用戶進行身份認證,合法的用戶通過認證,不合法的用戶拒絕連接(常見密碼錯誤)。
2.對合法的用戶根據權限表授予具體的訪問權限。
3.啓動數據庫時權限表已經刷入內存,並排序,當有多條記錄匹配時,只根據第一條判斷。

登錄mysql數據庫,切換到mysql數據庫,更新權限表
mysql -uroot -p
use mysql

update 權限表(user、db、host),常見通過以下權限表的順序獲得數據庫相關訪問權限
user----db----tables_priv----columns_priv
重點:通常更新user表的以下三個字段即可
1.host----主機名、IP、localhost指出本地主機,可使用通配符 “%” 和 “_”,通配非本地的IP或主機名,其中 “%” 與 空 效果等價
2.user----用戶名
3.password----密碼

刷新權限表
flush privileges

5.服務器限制問題

1.檢查數據庫是否已經正常啓動
2.關閉防火牆
3.檢查網絡是否通暢(跨服務器訪問)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章