前言
這是我在安裝過程中遇到的坑,結合網上各種經驗貼,記錄的一篇筆記,以防日后遺忘。
在 Centos7.6 中安裝 MySql
1、添加 yum 包
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2、安裝 Mysql
yum install mysql-community-server
3、啟動 MySql
# 啟動守護進程
sudo systemctl start mysqld
安裝完后,MySQL 會在系統啟動時自動啟動,如果不想讓它自動啟動,可以使用 systemctl disable mysqld 關閉它。
配置 MySql
1、修改登錄密碼
mysql 安裝完成之后,在 /var/log/mysqld.log 文件中給 root 生成了一個默認密碼。通過下面的方式找到 root 默認密碼,然后登錄 mysql 進行修改:
grep 'temporary password' /var/log/mysqld.log
如下圖,圈起來的就是默認密碼:

本地 MySQL 客戶端登錄:
mysql -u root -p
再輸入默認密碼,就可以進入 Mysql 客戶端:

然后修改密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Test@123456';
密碼強度要求是:不少於12字符,必須包含大寫字母、小寫字母、數字和特殊字符。
如果想設置如 123456 這樣簡單的密碼,我們需更改 MySql 的密碼策略。
注意,一定要先設置一個復雜且符合要求的密碼,再進行后續操作。
2、為了設置簡單密碼,修改密碼策略
先進入 MySQL 客戶端
// 第一步
mysql -u root -p
// 第二步
輸入密碼
如果已經在 MySQL 客戶端中,就忽略這步。
查看MySQL完整的初始密碼規則,登陸后執行以下命令
SHOW VARIABLES LIKE 'validate_password%';

修改密碼長度:
set global validate_password.length=6;
修改密碼等級:
set global validate_password.policy=0;
再次執行修改密碼語句:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
使用 quit 退出 MySQL 客戶端,重新啟動mysql服務使配置生效:
systemctl restart mysqld
然后,就可以使用新密碼 123456 登陸了。
設置遠程登錄
默認只允許 root 帳戶在本地登錄,如果要在其它機器上連接 mysql,必須修改 root 允許遠程連接,或者添加一個允許遠程連接的帳戶。
首先進入 MySQL 客戶端,修改 root 用戶遠程訪問權限:
選擇 mysql 數據庫:
use mysql;
在 mysql 數據庫的 user 表中查看當前 root 用戶的相關信息:
select host, user from user;

查看表格中 root 用戶的 host,默認應該顯示的 localhost,只支持本地訪問,不允許遠程訪問。
授權 root 用戶設置遠程訪問:
update user set host='%' where user ='root';
然后使用下面命令使修改生效:
flush privileges;
遠程登錄
這里,我使用的 MySQL-font 進行遠程登錄安裝在騰訊雲服務器上的 MySQL。

輸入主機 IP 和 MySQL 密碼,就可以了。
登錄后,如下圖:

安裝 MySQL8 后,自帶有 information_schema、mysql、performance_schema、sys 這四個數據庫。
參考文章
遠程連接數據庫 出現 Client does not support authentication protocol requested by server的解決方法
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
每天學習一點點,每天進步一點點。
