緣由
最近由於工作調整,很多基礎工作都要准備。對我們研發來講,代碼寫完了還需要部署到生產環境。那就無法避免的要部署生產服務器的環境。由於軟件一直會有更新迭代。這里我們就說下MySQL8.0在CentOS7安裝的一個全過程
配置源
由於默認源已經不再有MySQL軟件信息了,所以需要自己去官方下載並安裝
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum localinstall mysql80-community-release-el7-3.noarch.rpm yum install mysql-community-client mysql-community-server
服務操作
service mysqld start #啟動 service mysqld restart #重啟 service mysqld stop # 停掉
根據上面的介紹,安裝之后我們需要啟動服務
重置root密碼
啟動服務之后,默認會給root賬號設置一個默認密碼。默認密碼就在 /var/log/mysqld.log 中,如下圖
mysql -uroot -p #直接按enter健 然后輸入剛才找到的臨時密碼
進去之后發現輸入任何密碼都會提示如下問題。新的版本安全方面做得非常好。情願麻煩點也要保證安全這種思路我是贊同的
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
重置密碼命令
ALTER USER "root"@"localhost" IDENTIFIED BY "xxxxxxx"; #執行如上命令 不巧的是會遇到其他錯誤 ,整個人都不好了,哈哈 #ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
遵循我們遇到問題解決問題的方針堅持不易的執行下去。根據描述可以看出來就是密碼不符合安全級別(默認需要大小寫字母特殊字符)。按照這種規則設置密碼之后就可以執行重置密碼了
大家可以到 http://www.54php.cn/game/tools/index 這里去生成復雜密碼(承諾不會記錄任何密碼信息)
設置密碼的驗證方式
在使用數據庫客戶端工具連接的時候可能會出現如下錯誤。這個是因為8.0使用了更安全的校驗模式
Authentication plugin 'caching_sha2_password' cannot be loaded
這個解決方案有2個。
方案一:
改變你使用賬號的校驗方式 。這種操作牆裂不建議改變root賬號。保證最高權限的賬號安裝是非常重要的
ALTER USER "root"@"localhost" IDENTIFIED WITH mysql_native_password BY "xxxxxxx"; FLUSH PRIVILEGES;
方案二:
新增加一個賬號使用支持的驗證方式,並嚴格限制該賬號的權限
CREATE USER root_virtual@localhost IDENTIFIED WITH mysql_native_password BY 'yyyy';
用戶授權和回收
GRANT select,insert,update ON beian_cms_db.* TO 'root_virtual'@'localhost' WITH GRANT OPTION;
PS: 權限包括 select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file
參考文章
原文地址: CentOS7 安裝和配置MySQL8全過程記錄
標簽: centos linux mysql