Mysql errors 及 solutions

這篇文章用來整理我在使用 mysql 過程中碰到的 errors 及對應(yīng)的 solutions。

數(shù)據(jù)庫連接錯誤
1.
粗粗的紅線:PDOException

solution:

修改 mysql 配置文件 my.cnf
#bind-address=127.0.0.1

restart mysql

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES
mysql 啟動失敗
1.

error message:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

solution:
mysql 默認(rèn)是使用 /var/lib/mysql/mysql.sock 啟動的。先查看 var/lib 下有沒有 mysql 這個目錄,沒有的話創(chuàng)建一個。查找到 mysql.sock 的所在路徑,假設(shè)為/path/to/mysql/mysql.sock,在 /var/lib/mysql 創(chuàng)建一個link:

ln -s /var/lib/mysql/mysql.sock /path/to/mysql/mysql.sock

重啟一下 mysql,ok!
注:這個 solution 是剽竊別人的,因為當(dāng)時只記下了具體的解決方法,并沒有表明出處,還請原作者見諒,謝謝

創(chuàng)建外鍵錯誤
1.

數(shù)據(jù)表的存儲引擎須支持外鍵關(guān)聯(lián)。mysql 常用的存儲引擎為 myisaminnodb,其中 innodb 支持外鍵關(guān)聯(lián)。

2.

source columnreferenced column 字段類型、長度、屬性須一致。例如:tb_users表中有字段 group_id int(6)tb_groups 表主鍵 group_id mediumint(8) unsigned 建立外鍵關(guān)聯(lián)時會失?。?/p>

將兩個字段的數(shù)據(jù)類型統(tǒng)一成 int(6) unsigned

3.

已存在數(shù)據(jù)的兩張表之間建立外鍵關(guān)聯(lián)需注意:source_column 的所有值必須存在于 referenced_column
中。下面的 sql 語句用于判斷是否符合這個條件,如果查詢的結(jié)果為空,說明符合,否則,不符合。

mysql> SELECT DISTINCT source_column  FROM source_table WHERE source_column NOT IN (SELECT referenced_column FROM referenced_table);

例如:

mysql> select * from  tb_users;
+-----------------------+
|   id   |   group_id   |   
+-----------------------+
|    1   |       1      |
|    2   |       3      |
+-----------------------+

mysql> select * from  tb_gruops;
+---------------------------+
|  group_id  |  group_name  |   
+---------------------------+
|     1      |  superadmin  |
|     2      |  postadmin   |
+---------------------------+

mysql> SELECT DISTINCT group_id  FROM tb_users WHERE group_id  NOT IN (SELECT group_id  FROM tb_groups);
+------------+
|  group_id  |   
+------------+
|     3      |
+------------+

# 這種情況下 tb_users 的 group_id 與 tb_groups 的 group_id 之間就不能建立外鍵關(guān)聯(lián)。

未完待續(xù)......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容