本文主要參考如下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