Centos7中MySQL8.0安裝過程及遇到的問題記錄

本文主要參考如下2篇文章,安裝操做html

https://www.miboxapp.com/article/detail/1146659339214393344node

http://www.javashuo.com/article/p-qspumkfi-k.htmlmysql

 

一、下載MySQL安裝包:下載地址:https://dev.mysql.com/downloads/mysql/linux

Select Operating System: 選擇 Red Hat ,CentOS 是基於紅帽的,Select OS Version: 選擇 linux 7sql

 

二、選擇 RPM Bundle 點擊 Download,下載時須要登陸Oracle帳號shell

 

三、下載好後的安裝包數據庫

 

四、登陸linux服務器,具體過程就不寫了,我用的是Xshell.centos

 

五、經過 rpm -qa | grep mariadb 命令查看 mariadb 的安裝包(centos7默認安裝了mariadb,須要卸載掉)服務器

 

六、經過 rpm -e mariadb-libs-5.5.65-2.el7.x86_64 --nodeps 命令裝卸 mariadbapp

 

七、經過 rpm -qa | grep mariadb 命令再次查看 mariadb 的安裝包

 

八、經過 cd /usr/local/ 命令進入根目錄下的usr目錄下的local目錄,這個目錄是放一些本地的共享資源的

 

(截圖非本機,本身操做時忘截圖了)

九、經過 ll 命令查看一下當前目錄下的目錄結構

 

(截圖非本機)

十、經過 mkdir mysql 命令 在當前目錄下建立一個名爲 mysql 的目錄

 

(截圖非本機)

十一、經過 ll 命令查看一下當前目錄下的目錄結構,剛建立的 mysql 目錄有了

 

(截圖非本機)

十二、經過 cd mysql 命令進入 mysql 目錄

 

(截圖非本機)

1三、經過FTP工具將MySQL的安裝包上傳到該目錄(圖中使用的是WinSCP)

 

1四、在Xshell中經過 ll 命令查看一下當前目錄下的目錄結構

 

(截圖非本機)

1五、經過 tar -xvf mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar  命令解壓 tar 包

 

(截圖非本機,截圖中的是mysql8.0.11)

1六、經過 rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安裝 common

 

(截圖非本機)

1七、如上按順序安裝如下安裝包

經過 rpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安裝 libs

經過 rpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安裝 client

經過 rpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安裝 server

 

1八、經過 rpm -qa | grep mysql 命令查看 mysql 的安裝包

 

1九、經過如下命令,完成對 mysql 數據庫的初始化和相關配置

(此處有個坑,下面第28步 mysql8.0設置不區分大小,必須在數據庫初始化時操做)

mysqld --initialize;

chown mysql:mysql /var/lib/mysql -R;

systemctl start mysqld.service;

systemctl enable mysqld;

——————

運行命令:mysqld --initialize; 報錯

 

解決措施

安裝libaio

運行命令:yum install -y libaio

安裝後再初始化mysql就能夠了

——————

 

20、經過 cat /var/log/mysqld.log | grep password 命令查看數據庫的密碼

 

2一、經過 mysql -uroot -p 敲回車鍵進入數據庫登錄界面

(複製密碼便可,另外密碼輸入後也不會顯示)

 

(截圖非本機)

2二、經過 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ‘123456'; 命令來修改密碼

 

(截圖非本機)

2三、經過 exit; 命令退出 MySQL,而後經過新密碼再次登錄

 

2四、建立用戶

通常不會使用root登陸,需建立一個新的用戶來使用mysql數據庫;

建立用戶命令

create user 'test'@'%' identified with mysql_native_password by '123456';

命令中的test爲用戶名,123456爲登陸密碼

 

(截圖非本機)

2五、受權遠程登陸

建立用戶後需設置容許遠程訪問纔可在外網連接MySQL數據庫

需分別執行如下命令:

grant all privileges on *.* to 'test'@'%' with grant option;

flush privileges;

2六、執行成功後需開啓3306端口,MySQL默認端口爲3306,開啓端口命令,需先退出MySQL

exit

firewall-cmd --zone=public --add-port=3306/tcp --permanent

systemctl restart firewalld.service

2七、開啓成功後,用MySQL數據庫的客戶端遠程連接測試

 

2八、設置數據庫不區分大小寫和字符集

執行以下命令

Vi /etc/my.cnf  進入配置文件

進入編輯模式後在最後加入

lower_case_table_names=1

default-character-set=utf8mb4

退出並保存(按ESC+:wq 保存退出),修改完成後需重啓MySQL

Systemctl restart mysqld

 

我執行以上命令後報錯,把配置文件最後2行註釋後又可正常運行,問題還未解決

 

—報錯問題跟蹤—

 

關於字符集問題,status命令,看到mysql字符集已是「utf8mb4」

 

 

查看mysql日誌 vi /var/log/mysqld.log

提示「unknown variable 'default-character-set=utf8mb4'」

查詢處理方法以下

①是在MySQL的配置/etc/my.cnf中將default-character-set=utf8mb4 修改成 character-set-server = utf8mb4,可是這須要重啓MySQL服務,若是你的MySQL服務正在忙,那這樣的代價會比較大。

 

②是用mysqlbinlog --no-defaults mysql-bin.000001 命令執行

 

考慮到已經查詢到mysql的字符集是utf8mb4,因此我沒去調整

 

關於大小寫問題,查詢發現mysql8.0須要在初始化時配置lower_case_table_names=1

不然會報錯。

https://blog.csdn.net/qq_24432795/article/details/103135455

 

 

http://www.javashuo.com/article/p-yfadbokd-nv.html

https://blog.csdn.net/weixin_42954381/article/details/100523640

我參照上述文檔,刪除mysql數據文件,從新設置

命令以下

service mysqld stop   //中止mysql服務

rm -rf /var/lib/mysql    //刪除mysql文件夾全部數據

service mysql start   //重啓mysql服務

 

重啓mysql時報錯,

 

 

因此從新初始化一遍數據庫存

命令以下

mysqld --initialize;

chown mysql:mysql /var/lib/mysql -R;

systemctl start mysqld.service;

systemctl enable mysqld;

 

而後帳號等相關設置從新操做一遍

 

mysql中經過查詢命令「show variables like '%lower_case%'」 大小寫設置

 

博客原文:https://www.jzlnice.com/article/detail/1297056055938912256

相關文章
相關標籤/搜索