Ubuntu18 安裝 MySQL 8.0.22
網上教程都比舊,也不是第一次安裝了,但依然還是花了比較多的時間,特此記錄本次安裝過程。因是安裝完畢後回憶記錄,或有錯漏。
第一步:
下載 mysql apt 配置檔案: https://dev.mysql.com/downloads/repo/apt/
第二步:
啟動 mysql 配置: sudo dpkg -i mysql-apt-config_0.8.16-1_all.deb, 檔名稱可能會變化。
第三步
選擇 MySQL Server & Cluster, 回車,繼續選擇 mysql 8, 回到最開始的頁面後,下移選擇 "ok"
第四步
sudo apt-get update
第五步
安裝mysql: sudo apt-get install mysql-server
第六步
啟動mysql: service mysql start
第七步
進入MySQL: sudo mysql -u root -p
無需輸入密碼,直接回車。
第八步
可選,本人將 mysql 庫下 user 表 host, authentication_string 修改為 "%", "123"
use mysql;
update user set host='%',authentication_string='123' where user='root';
flush privileges;
修改後檢視 user 使用者資訊:
select user,host,authentication_string,plugin from user where user = 'root' \G;
*************************** 2. row ***************************
user: root
host: %
authentication_string: 123
plugin: auth_socket
第九步
修改 /etc/mysql/mysql.conf.d/mysqld.cnf 檔案, 在 "[mysqld]" 下增加引數:
bind-address = 0.0.0.0
port=3306
# skip-grant-tables
並重啟 mysql。
重啟 mysql: service mysql restart
檢視 mysql 狀態: service mysql status
停止mysql: service mysql stop
啟動mysql: service mysql start
第十步
發現登入 mysql 必須使用 sudo, workbench連線不上,打算建立新使用者來解決問題:
// 建立新使用者, 發現報錯, 密碼不符合要求,打算修改密碼校驗規則
CREATE USER 'tony'@'%' IDENTIFIED BY '123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
// 檢視密碼校驗規則, 展示的密碼規則是修改後的規則
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 3 |
| validate_password_mixed_case_count | 0 |
| validate_password_number_count | 0 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 0 |
+--------------------------------------+--------+
// 修改密碼校驗規則全域性變數
set global validate_password_length=3;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=0;
set global validate_password_special_char_count=0;
// 重新建立使用者,任何地方都可連線: '%', 密碼: '123'
CREATE USER 'tony'@'%' IDENTIFIED BY '123';
// 授予所有許可權,並重新整理
GRANT ALL PRIVILEGES ON * . * TO 'tony'@'%';
flush privileges;
再次使用 WorkBench 能連線上了。
檢視使用者 "tony" 資訊:
*************************** 1. row ***************************
user: tony
host: %
authentication_string: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
plugin: mysql_native_password
*************************** 2. row ***************************
登入mysql:
mysql -u tony -p
password: 123