記錄一次坑爹的操做。好久好久前,安裝mysql很順利,因而乎,順着經驗,在mysql8.0上撞了大坑,只能怪,經驗太舊太舊了,至此更新以下:node
linux安裝mysql,最新版8.0:mysql
一、首先,檢測是否已安裝:linux
rpm -qa | grep mysql
刪除已安裝的mysql:sql
rpm -e --nodeps mysql或rm -rf xxx
二、安裝,登錄mysql官網,下載對應版本的YUM資源包。shell
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server
初始化,
mysqld --initialize
啓動,
systemctl start mysqld
中止,
ide
systemctl stop mysqld
重啓,
工具
systemctl restart mysqld
三、填坑加密
1)、啓動後會提示:
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
遇到這種錯誤,第一反應,根據提示,執行spa
systemctl status mysqld.service或journalctl -xe命令,插件
查看信息,結果獲得的與想要的,相差甚遠:
給的提示,最終指向Error: 13 (Permission denied)。。。Failed to start MySQL Server.
沒什麼卵用,因而乎,查看mysql錯誤日誌:
執行c
查看日誌後得知,mysqld.pid沒有寫入權限,採起如下方式解決:
chown -R mysql:mysql /var/run/mysqld
再次啓動,成功!
2)、給root用戶設置密碼
按照之前的經驗,一頓操做猛如虎,定睛看,root密碼還是處!(過期經驗,再也不贅述)
悔當初,沒仔細看官網文檔,因而乎,翻閱官方,獲得以下方式:
執行如下命令:
shell> sudo grep 'temporary password' /var/log/mysqld.log
獲得mysql安裝啓動時,提供得臨時密碼xxx
經過臨時密碼,執行shell> mysql -uroot -p,輸入臨時密碼,登錄mysql成功
執行如下命令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxx';
設置新密碼成功!
注:新密碼遵循mysql的密碼策略。密碼策略validate_password
要求密碼包含至少一個大寫字母,一個小寫字母,一個數字和一個特殊字符,而且總密碼長度至少爲8個字符
3)、開啓遠程訪問
修改mysql.user表中root對應的host,默認爲localhost,改成%,匹配全部主機:
update user set `host` = '%' where `user` = 'root' LIMIT 1;
給root分配全部訪問權限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
開啓3306端口
使用navicat或navicat premium12鏈接mysql,報錯:
2059-Authentication plugin 'caching_sha2_password' cannot be loaded:
緣由,mysql8.0使用的身份驗證插件爲:caching_sha2_password,客戶端工具使用的身份驗證插件還是mysql_native_password,解決:
修改mysql.user中的加密方式,
alter user 'root'@'%' identified with mysql_native_password by 'root密碼';
至此,mysql8.0填坑初步完成。