查看 mysql 的 repo 源,進去找到自己系統(tǒng)的版本并選擇對應(yīng)mysql版本。我的主機是 ?Centos7 x64
http://repo.mysql.com/
選擇一個版本并下載到主機:
wget ?http://repo.mysql.com/mysql-community-release-el7-9.noarch.rpm
然后安裝 rpm 包:
安裝好 rpm 包之后我們將獲得兩個 yum 源:
接下來安裝 mysql :
yum ?install ?mysql-server
接下來設(shè)置 mysqladmin 用戶的初始密碼:
mysqladmin ?-u root ?-p password xxxxx ? ? ? ?# 因為初始是沒有密碼的痒钝,所以 -p 后面的舊密碼可以不寫。建議此處密碼不要與 Linux 系統(tǒng)密碼一致
但我在此處登錄是出現(xiàn)一個錯誤 ?----> ?ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘?
原因是/var/lib/mysql的訪問權(quán)限問題榴徐。下面的命令把/var/lib/mysql的擁有者改為當(dāng)前用戶:
chown ?-R ?user:group ?/var/lib/mysql
現(xiàn)在進入 mysql 豺总,執(zhí)行 ” flush? privileges; “ 命令。 注:flush privileges的意思是強制刷新內(nèi)存授權(quán)表狠怨,否則用的還是緩沖中的口令约啊。
為了加強安全性,MySQL5.7為root用戶隨機生成了一個密碼佣赖,在error_log中恰矩,關(guān)于error_log的位置,如果安裝的是RPM包憎蛤,則默認是 /var/log/mysqld.log 外傅。
grep " temporary password"? /var/log/mysqld.log
#查看隨機生成的密碼。
利用隨機密碼登錄mysql后,會要求我們修改密碼萎胰。
此時我們無法利用 mysqladmin?重置密碼碾盟,但必須要重新修改密碼才能登錄mysql。
此時修改/etc/my.cnf,?在 [mysqld] 最后行加上 skip-grant-tables奥洼,然后重新啟動mysql服務(wù)既可無認證登錄mysql巷疼;
這時登入mysql,修改密碼:
UPDATE ?mysql.user ?SET? authentication_string =PASSWORD('新密碼') ?WHERE ?User='xxx';
這時將/etc/my.cnf中skip-grant-tables注釋灵奖,然后重啟mysql嚼沿。
利用修改后的密碼登錄msyql,?但是,我又遇到一個坑瓷患。無法使用和查看數(shù)據(jù)庫骡尽,要叫我重置密碼。麻蛋擅编!
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼'攀细;
但是,它會有密碼復(fù)雜度的限制的報錯:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
又要修改密碼復(fù)雜度才行:
set?global?validate_password_policy=0;??
#更改密碼強度
set?global?validate_password_length=4;?
#設(shè)置最低長度
修改mysql監(jiān)聽IP:
vim /etc/my.cnf
#bind-address=0.0.0.0
bind-address=127.0.0.1
新建用戶:
CREATE USER zhang@localhost ?IDENTIFIED BY '密碼';
flush ?privileges;
修改用戶密碼:
UPDATE ?mysql.user ?SET ?password=PASSWORD('新密碼') ?WHERE ?User='用戶名' and host='xxx'爱态;
FLUSH ?PRIVILEGES;
刪除用戶:
delete ?from ?user where ?user=”xxx" and ?host="xxx";
flush ?privileges;
開放3306端口:
vi ?/etc/sysconfig/iptables
添加以下內(nèi)容:
-A ?INPUT ?-p ?tcp ?-m ?state ?--state ?NEW ?-m ?tcp ?--dport ?3306 ?-j ?ACCEPT
保存后重啟防火墻:
service ?iptables ?restart
這樣從其它客戶機也可以連接上mysql服務(wù)了谭贪。
開啟MySQL命令自動補全功能:
>vim /etc/my.cnf
[mysql]
#no-auto-rehash
auto-rehash
systemctl restart mysql