CentOS7中ESL服務部署記錄
在CentOS7上部署價籤系統,需要安裝Mysql,Redis,emqtt,jdk。
1)Mysql,參考
2)Redis,參考
3)emqtt,參考
4)jdk,參考
在jdk的下載地址中,下載rpm檔案,通過ftp上傳到虛擬機器後,通過rpm的方式進行安裝。
服務的rpm基本安裝模式:
wget 獲取rpm安裝包,
rpm -ivh *.rpm
yum install <依賴包名稱>
操作服務:systemctl start|stop|restart|status *d.service 或者 service *d start|stop|restart|status
ESL系統部署完成之後,介面呼叫異常,檢視日誌發現:
在資料庫中存在user表,同樣的應用程式,同樣的資料庫表,在其他環境中並沒有這個問題,懷疑是Mysql的系統設定問題。經過搜尋,果然發現Mysql會通過引數lower_case_table_names來設定資料庫表是否是大小寫敏感,登入Mysql,通過
show variables like "%case%";
發現lower_case_table_names的值為0,根據參考,0的意思是區分大小寫,需要將其值改為1。
找到Mysql的配置檔案,通過:
mysqladmin | grep -A 1 'Default options'
開啟/etc/my.cnf,發現其內容如:
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
需要將lower_case_table_names=1新增到該檔案中,這裡有個巨坑!因為幾乎所有的百度搜索結果都說只要將這句話新增到該檔案,或者新增到檔案末尾。一開始我也是新增到末尾,但是這種情況下不管如何重啟,這個修改始終不起效果,經過兩個小時的折騰,突然發現my.cnf檔案其實是分結構的,通過[]分成了兩個部分[mysqld],[mysqld_safe]!需要將引數修改新增到[mysqld]之後!!如:
[mysqld]
#注意位置
lower_case_table_names=1
[mysqld_safe]
重啟Mysql:
再次登入查詢: