1. 程式人生 > >centos mysql安裝與root密碼找回

centos mysql安裝與root密碼找回

1,root 密碼找回

root密碼找回

如果你使用網上的其他安裝教程出現:那麼可以使用我下面的這個連結成功安裝

error: Requires: libstdc++.so.6(GLIBCXX_3.4.15)(

2,安裝

centos 安裝gmysql

 

安裝有問題:

嘗試此方法安裝:

安裝mysql5.7

3,root預設密碼

安裝後的問題:第一次使用需要使用隨機密碼登入

隨機密碼在:

/var/log/mysqld.log

找到:temporary password後面的隨機字串拷貝即可:

4,第一次登入,密碼修改

問題:修改密碼遇到

mysql error You must reset your password using ALTER USER statement before executing this statement.

解決:

step 1: SET PASSWORD = PASSWORD('your new password');

step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

step 3: flush privileges;

再次嘗試修改密碼,由於密碼太簡單出現:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

解決:修改原來的密碼強度驗證策略為僅僅判斷密碼長度

set global validate_password_policy=0;

5,遠端連線

登入資料庫: 

   mysql -u root -p

執行:選定database,再執行授權語句,最後重新整理快取,讓其生效

use mysql; 
update user set host = ’%’ where user = ’root’;
flush privileges;

6在本機連線虛擬機器中的mysql:

出現

Mysql連線錯誤:Lost connection to Mysql server at 'waiting for initial communication packet'

解決:參考連結

原因分析:
mysql開啟了DNS的反向解析功能,這樣mysql對連線的客戶端會進行DNS主機名查詢。
mysql處理客戶端解析過程:
1)當mysql的client連過來的時候,伺服器會主動去查client的域名。
2)首先查詢 /etc/hosts 檔案,搜尋域名和IP的對應關係。
3)如果hosts檔案沒有,則查詢DNS設定,進行DNS反向解析,直到timeout連線失敗。
mysql的DNS反向解析:
1)mysql接收到連線請求後,獲得的是客戶端的ip,為了更好的匹配mysql.user裡的許可權記錄(某些是用hostname定義的)。
2)如果mysql伺服器設定了dns伺服器,並且客戶端ip在dns上並沒有相應的hostname,那麼這個過程很慢,導致連線等待。

解決:

1)把client的ip寫在mysql伺服器的/etc/hosts檔案裡,隨便給個名字做主機對映即可。
2)在my.cnf配置檔案中的[mysqld]區域新增skip-name-resolve,即跳過mysql連線的DNS反向解析功能,這樣能很好地提高mysql效能。在這種情況下,就只能使用MySQL授權表中的IP來連線mysql服務了。
對於第一種方法顯然比較笨,也不實用!強烈推薦第二種方法,新增skip-name-resolve選項可以禁用dns解析,這樣的話,就不能在mysql的授權表中使用主機名了,只能使用IP

另外:
如果在my.cnf檔案中配置了bind-address地址繫結的地址(說明別的機器遠端只能通過這個繫結的本機地址來連線mysql),可以將其註釋掉。
例如:
bind-address = 127.0.0.1       //說明只能在本機連線mysql,並且通過-h 127.0.0.1或localhost,在遠端是無法連線這個mysql的!
--------------------------------------------------------------------------------------------------------------

my.cnf配置的幾個引數:
skip-name-resolve         跳過DNS反向解析過程.(這樣就不能使用主機名連線mysql了,只能使用ip連線)
skip-grant-tables           跳過授權表(當mysql登陸密碼忘記時的解決辦法)
skip-networking             跳過TCP/IP連線
skip-host-cache             禁用主機名快取;要想清除主機名快取,執行FLUSH HOSTS語句或執行mysqladmin flush-hosts命令