目錄
2.4、CentOS 7下啓動、關閉、重啓、查看MySQL服務
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
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';