MySQL8.0.20 雙系統安裝

MySQL 安裝教程


注意事項

  •  文檔的cmd命令不要複製,可能會出錯,是富文本編輯器的空格造成。
  •  使用jdk11需更新MySQL8.0.16以上(包含)
  •  MySQL 修復 jdk 11 bug 參考: 鏈接

MySQL 8 之前版本參考

windows 10 安裝 

 1.下載

     https://dev.mysql.com/downloads/mysql/


2.卸載之前的MySQL 

   以管理員身份運行cmd 執行

  • 數據庫複製備份參考官方: 鏈接
  • net stop mysql 停止服務
  • mysqld --remove mysql 刪除服務
  • 刪除例如D:\Program Files\MySQL的目錄
  • 這就是壓縮包安裝的好用,可執行文件卸載出錯可能還需要重裝系統

3.安裝

  • mysql-8.0.20-winx64.zip 解壓到D:\Program Files
  • 將解壓之後的目錄mysql-8.0.20重命名爲MySQL
  • MySQL目錄下新建my.ini配置文件,打開添加以下內容
  • 注: utf8mb4是utf-8的升級支持emoji庫的存儲及表情,請勿使用utf8 linux下出錯  win10下警告。
[mysqld]
# 設置3306端口
port=3306
# 設置mysql的安裝目錄
basedir=D:\Program Files\MySQL
# 設置mysql數據庫的數據的存放目錄
datadir=D:\Program Files\MySQL\data
# 允許最大連接數
max_connections=2000
# 允許連接失敗的次數。這是爲了防止有人從該主機試圖攻擊數據庫系統
max_connect_errors=10
# 服務端使用的字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
# 默認使用“mysql_native_password”插件認證
default_authentication_plugin=mysql_native_password
#超時設置
wait_timeout=2147483
interactive_timeout=2147483
#設置默認時區
default-time_zone ='+8:00' 
 
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8mb4
 
[client]
# 設置mysql客戶端連接服務端時默認使用的端口
port=3306
default-character-set=utf8mb4

3.配置環境變量

    D:\Program Files\MySQL\bin 添加到環境變量path中


4.安裝服務

  • 以管理員身份運行cmd否則會失敗
  • 執行mysqld --initialize --console
  • error: Found option without preceding group in config file
  • 原因是my.ini 文件可能是UTF-8編碼,打開記事本選擇另存爲選擇編碼ANSI
  • 執行成功會顯示臨時密碼,root@localhost: IuWlms_/B0Kp
  • IuWlms_/B0Kp 爲臨時密碼
  • 安裝服務mysqld --install
  • 啓動服務net start mysql
  • 登錄 mysql -u root  -p  回車輸入密碼
  • IuWlms_/B0Kp
  • 修改密碼
  • alter user 'root'@'localhost' IDENTIFIED BY '密碼';
  • 注意:密碼不能爲root,win10 MySQL 版本無強制密碼策略(密碼策略參考CentOS安裝)

5.配置訪問權限(允許其它主機訪問)

 需先登錄

  • Use mysql
  • Update user set host=’%’ where user=’root’;
  • Select host,user from user;
  • Flush privileges;

 注意:以後的修改密碼變成

  • alter user 'root'@'%' IDENTIFIED BY '密碼';

CentOS 8 安裝 

 1.下載

     https://dev.mysql.com/downloads/mysql/

 

 


2.上傳

  • 解壓 mysql-8.0.20-1.el8.x86_64.rpm-bundle.tar,以下4個文件必須安裝

          

  • 使用Xftp上傳到CentOS 的 例如: /opt/packages目錄下
  • mkdir /opt/packages 創建目錄

3.安裝

  •  cd /opt/packages/  執行以下命令進行安裝
  • rpm -ivh mysql-community-common-8.0.20-1.el8.x86_64.rpm --nodeps 
  • rpm -ivh mysql-community-libs-8.0.20-1.el8.x86_64.rpm --nodeps 
  • rpm -ivh mysql-community-client-8.0.20-1.el8.x86_64.rpm --nodeps 
  • rpm -ivh mysql-community-server-8.0.20-1.el8.x86_64.rpm --nodeps

4.編輯配置文件

  • 編輯my.cnf
  • vi /etc/my.cnf 
  • i在當前行編輯
  • 注:utf8mb4 是utf-8的升級支持emoji庫的存儲及表情,請勿使用utf8 centos下出錯  win10下警告
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
 
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
 
#端口
port=3306
 
#mysql默認的安裝路徑
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
 
# 允許最大連接數
max_connections=2000
 
# 允許連接失敗的次數。這是爲了防止有人從該主機試圖攻擊數據庫系統
max_connect_errors=10
 
# 服務端使用的字符集
character-set-server=utf8mb4
 
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
 
# 默認使用“mysql_native_password”插件認證
default_authentication_plugin=mysql_native_password
 
#超時設置
wait_timeout=2147483
interactive_timeout=2147483
 
#設置默認時區
default-time_zone ='+8:00'
 
#日誌輸出文件
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
[mysql]
default-character-set=utf8mb4
 
[client]
port=3306
default-character-set=utf8mb4
  • ESC鍵輸入:wq 退出並退出

5.啓動服務

  • 啓動服務:systemctl start mysqld  
  • 警告: 不建議使用 service mysqld restart 會重定向到 systemctl start mysqld
  • 查看服務狀態:systemctl status mysqld
  • 查看臨時密碼:grep 'password' /var/log/mysqld.log | head -n 1

 


6.登錄

  • mysql  -u root  -p 
  • 注意:在p後面不要跟密碼,8版本會登錄失敗,回車再輸入密碼
  • 注意:mysql連接失敗也可能是 default_authentication_plugin=mysql_native_password 沒有配置,參考 4.編輯配置文件

7.修改密碼策略

  • 注意:只有Linux版本mysql有強制密碼策略
  •  mysql 8 和mysql7密碼策略區別
  • mysql8 例如密碼長度:set global validate_password.length=6;
  • mysql7 例如密碼長度:set global validate_password_length=6;
  • 查看密碼策略 : show variables like 'validate_password%'; 
  • 注意:必須修改密碼才能查看密碼策略

       

  • 可修改的密碼策略
密碼驗證策略低要求
set global validate_password.policy=LOW;(0或LOW代表低級)
密碼至少要包含的小寫字母個數和大寫字母個數
set global validate_password.mixed_case_count=0;
密碼至少要包含的數字個數。
set global validate_password.number_count=0; 
密碼至少要包含的特殊字符數
set global validate_password.special_char_count=0; 
密碼長度
set global validate_password.length=6;  

8.修改密碼

  • 修改過密碼策略就可以使用簡單的密碼了
  • alter user 'root'@'localhost' IDENTIFIED BY '密碼';
  • 注意:密碼不能使用root

9.修改mysql訪問權限

  • 登錄之後
  • Use mysql
  • update user set host='%' where user ='root';
  • select host,user from user;
  • Flush privileges;

10.CentOS 8 防護牆命令

  • sudo firewall-cmd --zone=public  --add-service=http --permanent  #添加開放的服務
  • sudo firewall-cmd  --zone=public --add-port=3306/tcp --permanent  #添加開放的端口
  • firewall-cmd --zone= public --query-port=80/tcp #查看是否開放
  • firewall-cmd --zone= public --remove-port=80/tcp --permanent # 刪除
  • firewall-cmd --reload # 重新載入,更新防火牆規則

描述:

  • --zone=public #作用域
  • --add-port=3306/tcp  #添加端口,格式爲:端口/通訊協議
  • --permanent   #永久生效,沒有此參數重啓後失效

11.防火牆開放MySQL端口

  • 爲了安全起見開放端口即可,防火牆不需要關閉
  • sudo firewall-cmd --list-all ( 查看開放端口)
  • sudo firewall-cmd --zone=public  --add-service=http --permanent 
  • sudo firewall-cmd  --zone=public --add-port=3306/tcp --permanent  
  • firewall-cmd --reload

12.開啓服務

  • systemctl enable mysqld

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章