資料庫1146
『壹』 Mysql Errno : 1146如何解決
mysql--1146--報錯
先找到資料庫存放地址,即Data文件夾(復制留下來)
再用電腦管家把所有的mysql卸載
然後把mysql文件夾弄走(卸載不會清掉它,需手動,一般在C:\ProgramData下)(可刪除,或剪切走,以防萬一)
重新安裝mysql(我用的是mysql-installer-community-5.7.13.0程序包)
如果資料庫啟動了先關閉它(因為版本,關閉是(net stop mysql57--在cmd中);啟動是(net start mysql57--在cmd中))
然後把以前的資料庫文件(自己需要的)(在Data文件夾下的,資料庫名即文件夾名)復制到,新的資料庫Data文件夾下(那些自帶的資料庫別動),
把新的Data下的那五個配置文件替換為以前老的文件(就是這五個文件auto.cnf,ib_buffer_pool,ib_logfile0,ib_logfile1,ibdata1)
重新啟動資料庫即可
『貳』 SQL Error:1146,SQLState:42S02 異常怎麼解決
編輯MySQL安裝目錄下的my.ini文件,在[mysqld]節下 添加 lower_case_table_names=1
『叄』 mysql 自己創建的資料庫 1146(42s02)
1、你創建的data_parts資料庫,但沒有在這個庫創建user表
2、所以你在use data_pats;後,select host,user from user;會報錯
3、而你在use mysql 後不報表,是因為mysql庫中,存在user表
『肆』 mysql 錯誤 SQL Error: 1146解決方法
這個問題的根源在於,在
MySQL
中,資料庫和表其實就是數據目錄下的目錄和文件,因而,操作系統的敏感性決定資料庫和表命名的大小寫敏感。
這就意味著資料庫和表名在
Windows
中是大小寫不敏感的,而在大多數類型的
Unix/linux
系統中是大小寫敏感的。
MySQL大小寫敏感可以通過配置文件的lower_case_table_names參數來控制。
WINDOWS:
編輯MySQL安裝目錄下的my.ini
文件,在[mysqld]節下
添加
lower_case_table_names=0
(備註:為0時大小寫敏感,為1時大小寫不敏感,默認為1),可以實現MySql按照建表Sql語句的大小寫狀態來定義表名。
LINUX:
編輯/etc/my.cnf文件,在[mysqld]節下
添加
lower_case_table_names=1
參數,並設置相應的值
(備註:為0時大小寫敏感,為1時大小寫不敏感,默認為0)。
『伍』 mysql中1146錯誤,提示表不存在,是本地資料庫不是從別的機器復制過來的。
1,查詢的資料庫選擇是否正確;
2,表名有限制字元,這種情況可以在表名前後加``,不是單引號,Tab鍵上面,數字鍵1左邊那個鍵;
『陸』 我把linux下的mysql文件夾拷貝了下來,想在另一台linux下的mysql上恢復數據,多個資料庫文件,出現1146錯誤
項目上 MySQL還原 SQL 備份經常會碰到一個錯誤如下,且通常出現在導入視圖、函數、存儲過程、事件等對象時,其根本原因就是因為導入時所用賬號並不具有SUPER 許可權,所以無法創建其他賬號的所屬對象。ERROR 1227 (42000) : Access denied; you need (at least one of) the SUPER privilege(s) for this operation常見場景:1. 還原 RDS 時經常出現,因為 RDS 不提供 SUPER 許可權;2. 由開發庫還原到項目現場,賬號許可權等有所不同。
處理方式:
1. 在原庫中批量修改對象所有者為導入賬號或修改SQL SECURITY為Invoker;2. 使用 mysqlmp 導出備份,然後將 SQL 文件中的對象所有者替換為導入賬號。
二、問題原因我們先來看下為啥會出現這個報錯,那就得說下 MySQL 中一個很特別的許可權控制機制,像視圖、函數、存儲過程、觸發器等這些數據對象會存在一個DEFINER和一個SQL SECURITY的屬性,如下所示:
--視圖定義CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`%`SQLSECURITYDEFINERVIEWv_test
--函數定義CREATEDEFINER=`root`@`%`FUNCTION`f_test()`RETURNSvarchar(100)SQLSECURITYDEFINER
--存儲過程定義CREATEDEFINER=`root`@`%`PROCEDURE`p_test`()SQLSECURITYDEFINER
--觸發器定義CREATE DEFINER=`root`@`%` trigger t_test
--事件定義CREATE DEFINER=`root`@`%` EVENT `e_test`
DEFINER:對象定義者,在創建對象時可以手動指定用戶,不指定的話默認為當前連接用戶;
SQL SECURITY:指明以誰的許可權來執行該對象,有兩個選項,一個為DEFINER,一個為INVOKER,默認情況下系統指定為 DEFINER;DEFINER:表示按定義者的許可權來執行;INVOKER:表示按調用者的許可權來執行。
如果導入賬號具有 SUPER 許可權,即使對象的所有者賬號不存在,也可以導入成功,但是在查詢對象時,如果對象的SQL SECURITY為DEFINER,則會報賬號不存在的報錯。ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist
改寫好處:1. 可以避免還原時遇到 DEFINER 報錯相關問題;2. 根據輸出信息知道備份是否正常進行,防止備份中遇到元數據鎖無法獲取然後一直卡住的情況。

『柒』 使用navicat連接資料庫時顯示1146-table 'mysql.proc' doesn't exist,這個怎麼解決
一、資料庫的系統表丟失了。
考慮以下幾種處理方式:
a. 從其它相同版本的mysql資料庫導出個proc的數據通過命令行導入進去;
b. 或者拷貝下data/mysql/proc.frm, proc.MYD, proc.MYI 三個文件到你的資料庫data/mysql/ 目錄下,重啟資料庫;
c. 如果之前有資料庫備份,提取出其中的mysql.proc表來導入。
二、如果是從其它環境導入或拷貝的,資料庫的存儲過程會受影響,需重建所有資料庫下的存儲過程。
『捌』 SQL Error:1146,SQLState:42S02 異常怎麼解決
這個問題的根源在於,在 MySQL 中,資料庫和表其實就是數據目錄下的目錄和文件,因而,操作系統的敏感性決定資料庫和表命名的大小寫敏感。
這就意味著資料庫和表名在 Windows 中是大小寫不敏感的,而在大多數類型的 Unix/Linux 系統中是大小寫敏感的。
MySQL大小寫敏感可以通過配置文件的lower_case_table_names參數來控制。
WINDOWS:
編輯MySQL安裝目錄下的my.ini 文件,在[mysqld]節下 添加 lower_case_table_names=0 (備註:為0時大小寫敏感,為1時大小寫不敏感,默認為1),可以實現MySql按照建表Sql語句的大小寫狀態來定義表名。
LINUX:
編輯/etc/my.cnf文件,在[mysqld]節下 添加 lower_case_table_names=1 參數,並設置相應的值 (備註:為0時大小寫敏感,為1時大小寫不敏感,默認為0)。
『玖』 mysql出現1146錯誤
資料庫mm裡面不存在表sun_style,你說表存在,請檢查是屬於哪個資料庫。
『拾』 mysql 資料庫 提示錯誤error 1146 謝謝
你是不是升級過mysql或者刪除過此表?我懷疑此表結構損壞.
解決方案:
1)重啟mysql
2)如果現象依舊,請嘗試repaire
table
wp_xxxx表名,
3)如果還不能解決,退出命令行客戶端,在mysql安裝目錄下的bin下
使用mysqlcheck
-r
資料庫名
表名
-uuser
-ppass來修復.