Linux 安裝Mysql8


CentOS7 下安裝 Mysql8

一、下載Linux版Mysql8壓縮包

>> wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.12-el7-x86_64.tar

或者從官網下載mysql包
 

二、解壓縮Mysql8壓縮文件

1 >> rpm -qa | grep mysql   -- 查看已有Mysql服務 
2 
3 >> rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64  -- 卸載Centos自帶Mysql服務   
4 
5 >> tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz -C /user/local    -- 解壓

說明:解壓后我們發現在 /user/local/mysql-8.0.12-el7-x86_64/ 目錄下多出兩個壓縮文件,其中一個是名稱中包含TEST,一個不包含TEST,我們需要不包含TEST的壓縮文件,在此執行解壓命令即可!

三、創建my.cnf配置文件

>> mkdir /usr/local/mysql-8.0.12-el7-x86_64/data  --創建目錄
>> vi /etc/my.cnf  --添加如下內容:
[client]

port=3306

socket=/tmp/mysql-8.0.12-el7-x86_64/mysql.sock

[mysqld]

skip-grant-tables

port=3306

user=mysql

socket=/tmp/mysql-8.0.12-el7-x86_64/mysql.sock

basedir=/usr/local/mysql-8.0.12-el7-x86_64

datadir=/usr/local/mysql-8.0.12-el7-x86_64/data

log-error=error.log

四、創建Mysql用戶及用戶組

>> groupadd mysql

>> useradd -g mysql mysql

五、創建臨時文件MySQL

>> mkdir /tmp/mysql    -- 創建目錄

>> chown -R mysql:mysql  /tmp/mysql    -- 執行授權

六、初始化數據庫

>> cd /user/local/mysql-8.0.12-el7-x86_64  -- 進入MySQL主目錄

>> ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.12-el7-x86_64/ --datadir=/usr/local/mysql-8.0.12-el7-x86_64/data/  -- 執行初始化命令,如果沒有什么異常提示,即代表初始化成功

初始化成功后控制台會打印root賬號默認的密碼,記得記錄下來

七、啟動MySQL服務

>> cd /usr/local/mysql-8.0.12-el7-x86_64

>> ./support-files/mysql.server start -- 啟動Mysql服務命令
>> ./support-files/mysql.server restart  -- 重啟Mysql服務命令 >> ./support-files/mysql.server stop  -- 關閉MySQL服務命令

八、登錄Mysql服務

>> ./bin/mysql -uroot -p

 此時,我們會發現登錄不了Mysql服務器,並報如下異常:

 [root@localhost software]# ./bin/mysql -uroot -p  Enter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

 解決方法:通過命令

>> vi /etc/my.cnf

 在 [mysqld] 節點中增加 skip-grant-tables 命令后重新登錄

下面演示正確修改root密碼的步驟

一、如果當前root用戶authentication_string字段下有內容,先將其設置為空,否則直接進行二步驟。

>> use mysql;
>> update user set authentication_string='' where user='root'
 

下面直接演示正確修改root密碼的步驟:

二、使用ALTER修改root用戶密碼,方法為 ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼'。 如下:

>> ALTER user 'root'@'localhost' IDENTIFIED BY 'root'

此處有兩點需要注意:

1、不需要flush privileges來刷新權限。

2、密碼要包含大寫字母,小寫字母,數字,特殊符號。

  修改成功; 重新使用用戶名密碼登錄即可;

注意: 一定不要采取如下形式該密碼:

>> use mysql;
>> update user set authentication_string="新密碼" where user="root";

 

這樣會給user表中root用戶的authentication_string字段下設置了newpassword值;

當再使用 ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'時會報錯的;

因為authentication_string字段下只能是mysql加密后的41位字符串密碼;其他的會報格式錯誤;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

 

***************************************************************************Warning*********************************************************************************************

Mysql8遠程無法訪問,譬如:在其他機器通過SqlYog連接的問題,可能是mysql8的密碼加密方式和可視化工具的加密方式不匹配,

該問題暫時還未解決!!!

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM