CentOS7 安裝MySQL8.0.18 及配置表名小寫等注意事項

目錄

1、使用場景

2、卸載和重新安裝MySQL8.x

2.1 卸載mysql8.x

2.2 安裝mysql8.x

2.3、mysql8.x 開啓遠程連接 配置方式

2.4、CentOS 7下啓動、關閉、重啓、查看MySQL服務

4、總結

5、參考文章


1、使用場景

        因爲最近需要再一臺新的服務器上部署項目,於是本人使用了一個開源項目的自動安裝MySQL的腳本。最後在導入了數據表(表名小寫的),最後在啓動程序時候,報錯.qrtz_TRIGGERS不存在;我查看導入數據庫的表名全是小寫的。網上說修改更改 my.cnf文件 lower_case_table_names=1但是  啓動報錯 mysql8.0。本人試驗過至少兩次結果都是修改後無法啓動MySQL啦。

        於是爲了能夠把相關項目能夠跑起來;於是必須要設置MySQL8.X的數據庫表不區分大小寫。網上找到一個靠譜的文章

lower_case_table_names=1 啓動報錯 mysql8.0 此文章也說明了必須重新安裝;在初始化時,設置 lower-case-table-names         原因:

         mysql8.0 要求我們不能在initialize之後再更改 lower_case_table_names 的值,也就是說,再通過更改 my.cnf 文件是不管用的。

2、卸載和重新安裝MySQL8.x

2.1 卸載mysql8.x

  • 關閉mysql
service mysqld stop
  • 查看安裝的mysql
rpm -qa|grep -i mysql

  • 卸載安裝的mysql
rpm -ev mysql-community-client-8.0.18-1.el7.x86_64 --nodeps
rpm -ev mysql-community-common-8.0.18-1.el7.x86_64 --nodeps
												   
rpm -ev mysql-community-server-8.0.18-1.el7.x86_64 --nodeps
rpm -ev mysql-community-libs-8.0.18-1.el7.x86_64   --nodeps

rpm -ev mysql80-community-release-el7-3.noarch     --nodeps
  • 刪除mysql相關目錄
find / -name mysql

rm -rf /etc/logrotate.d/mysql
rm -rf /usr/bin/mysql
rm -rf /usr/lib64/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
  • 刪除my.cnf
rm -rf /etc/my.cnf
  • 檢查卸載情況
rpm -qa|grep -i mysql

顯示爲空,卸載完畢。

2.2 安裝mysql8.x

# 下載mysql rpm
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

# 安裝rpm
rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

# yum 安裝mysql服務
yum install -y mysql-community-server

#注意事項 安裝完畢之後執行如下初始化語句 在初始化時,設置 lower-case-table-names

/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1

# 啓動mysql服務
systemctl start mysqld.service

# 查看mysql服務狀態
systemctl status mysqld.service

# 查看安裝的mysql密碼
grep 'temporary password' /var/log/mysqld.log

TEMP_PWD=$(grep 'temporary password' /var/log/mysqld.log)
PWD=${TEMP_PWD##* }
echo "${PWD}"

注意其中 語句 在初始化時,設置 lower-case-table-names

/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
# 登陸
mysql -uroot -p${PWD}

# 進入到mysql命令行時,修改密碼
# 修改密碼
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'SpringBoot@123';

2.3、mysql8.x 開啓遠程連接 配置方式

關鍵語句

root用戶的host值爲localhost,這代表只能本地連接,將localhost修改爲%

update user set host='%' where user='root';

此文章及有價值:mysql 8.0.13開啓遠程連接 配置方式

2.4、CentOS 7下啓動、關閉、重啓、查看MySQL服務

  • 啓動命令
service mysqld start
  • 關閉命令
service mysqld stop
  • 重啓命令

 

service mysqld restart
  • 查看服務狀態
service mysqld status

 

  • 查看MySql系統配置
cat /etc/my.cnf

此處參考文章:CentOS 7下啓動、關閉、重啓、查看MySQL服務

3、成果

   經過上面的卸載然後在初始化時候指定表名可以小寫後;啓動quazt的定時器任務一切正常。

4、總結

       此篇文章涉及的知識點衆多;主要包含以下幾點:

      (1)、MySQL8.x之後如果要求表名不區分大小寫一定要注意必須在安裝的時候指定,否則不起左右或者修改後也就啓動不了數據庫啦。MySQL5.7可以直接修改。

      (2)、針對數據庫遠程可以訪問問題root%操作

      (3)、授權拒絕問題也是比較常見的問題

本文也是在實際之中遇見問題後,查閱了多方資料;抽出時間進行總結的;主要也是對自己實踐的歸類總結;以後遇見類似問題可以直接參考;同時也爲其他朋友門遇見類似問題提供一個參考可行方案。

5、參考文章

lower_case_table_names=1 啓動報錯 mysql8.0

Linux(CentOS7)下安裝Mysql8數據庫

安裝腳本參考文章

mysql 8.0.13開啓遠程連接 配置方式

mysql將某數據庫的全部權限賦給某用戶,提示1044錯誤Access denied(注意此文)應該N爲Y

//原文
update mysql.user set grant_priv='N' where host='localhost';
//修改爲
update mysql.user set grant_priv='Y' where host='localhost';

 

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