執行下列的sql時,出現錯誤。
update race set ol_id = '101', play_group_id = '2', play_item_id = '1', race_level = '2', get = '4', plus = '0', date = '0106', time = '1030', eye = '0', race_cancel = '' where race_id = '1' ;
發現是 get是關鍵字(keywords),有它的意義。因此產生錯誤。
解決方法:
MySQL 關鍵字和保留字通常在SQL語句中有特殊的意義,例如SELECT,DELETE,BIGINT等等,如果要使用這些關鍵字或保留字作為表名、欄位名,需要使用引號來標識,否則將會報錯誤。
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000): You have an error in your SQL syntax ... near 'interval (begin INT, end INT)'
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
設置 MySQL 允許遠端訪問 20240805
編輯 mysqld.cnf
首先編輯 mysqld.cnf 文件這個文件定義了所有 MySQL 的配置參數。進入後將 bind-address = 127.0.0.1 註解起來,完成後鍵盤輸入 :wq 儲存並退出 vim。
SELECT list is not in GROUP BY clause and contains nonaggregated column .... incompatible with sql_mode=only_full_group_by
執行SQL語法
--Disable: ONLY_FULL_GROUP_BY mode by running the below command.
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
MYSQL 設定檔位置
/etc/mysql/my.cnf <--ubumtu 用 sudo apt-get install mysql-server 方式安裝
/home/$USER/.my.cnf
/etc/mysql/conf.d/mysql.cnf
on Amazon EC2 Ubuntu 22.04
/etc/mysql/mysql.conf.d/mysqld.cnf
MySQL出現The server requested authentication method unknown to the client [caching_sha2_password]不能登入? 文章出處
原因:
因為新版本MySQL,如MySQL8.0採用caching_sha2_password加密模式,而舊版本加密方式為mysql_native_password,所以會出現這個無法相容的加密模式,部分MySQL設定則會在MySQL使用後一段時間才會出現這個問題。
解決的方法:登入Mysql
新建立用戶:
CREATE USER 帳號名稱@localhost identified with mysql_native_password by '會員密碼';
原用戶問題修正:
ALTER USER 帳號名稱@localhost identified with mysql_native_password by '會員密碼';
這樣就可以讓原本無法登入的帳號套用正確的加密模式,恢復登入。
解除mysql嚴格設定
找出mysql設定檔 mysql.cnf 或 my.cnf
[mysqld]
sql_mode=""
設定完後重新啟動mysql
登入mysql
sudo mysql -u root -p