>> wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.12-el7-x86_64.tar
或者從官網下載mysql包
node
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的壓縮文件,在此執行解壓命令便可!mysql
>> 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
>> groupadd mysql
>> useradd -g 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帳號默認的密碼,記得記錄下來linux
>> 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服務命令
>> ./bin/mysql -uroot -p
此時,咱們會發現登陸不了Mysql服務器,並報以下異常:sql
[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 命令後從新登陸socket
1、若是當前root用戶authentication_string字段下有內容,先將其設置爲空,不然直接進行二步驟。工具
>> use mysql; >> update user set authentication_string='' where user='root'
下面直接演示正確修改root密碼的步驟:加密
2、使用ALTER修改root用戶密碼,方法爲 ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼'。 以下:spa
>> ALTER user 'root'@'localhost' IDENTIFIED BY 'root'
此處有兩點須要注意:
一、不須要flush privileges來刷新權限。
二、密碼要包含大寫字母,小寫字母,數字,特殊符號。
修改爲功; 從新使用用戶名密碼登陸便可;
注意: 必定不要採起以下形式該密碼:
>> 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的密碼加密方式和可視化工具的加密方式不匹配,
該問題暫時還未解決!!!