本文更新於2020-05-04,使用MySQL 5.7,操作系統為Deepin 15.4。 忘記roo密碼 使用mysqld_safe --skip-grant-tables跳過許可權系統啟動服務。 不使用賬號密碼,直接使用mysql登錄。 使用UPDATE mysql.user SET authen ...
本文更新於2020-05-04,使用MySQL 5.7,操作系統為Deepin 15.4。
目錄
忘記roo密碼
- 使用
mysqld_safe --skip-grant-tables
跳過許可權系統啟動服務。 - 不使用賬號密碼,直接使用
mysql
登錄。 - 使用
UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE user = 'root' [AND host = 'host']
,不能使用SET PASSWORD
,因為--skip-grant-tables會導致其失敗。 - 使用
FLUSH PRIVILEGES
或重啟服務後,新密碼生效。
修改密碼
修改密碼有以下幾種辦法:
- `mysqladmin password 'password'
SET PASSWORD [FOR user@host] = PASSWORD('password')
GRANT USAGE ON *.* TO user@host IDENTIFIED BY [PASSWORD] 'password'
UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE Host = 'host' AND User = 'user'; FLUSH PRIVILEGES;
MyISAM存儲引擎的表損壞
一張損壞的表的癥狀通常是查詢意外中斷並且能看到下述錯誤:
- “tbl_name.frm”被鎖定不能更改。
- 不能找到文件“tbl_name.MYI”(Errcode: nnn)。
- 文件意外結束。
- 記錄文件被損壞。
- 從表處理器得到錯誤nnn。
解決方法有:
- 使用工具:
myisamchk -r tablename
或myisamchk -o tablename
。 - 使用語句:
CHECK TABLE tablename
和REPAIR TABLE tablename
。
數據目錄磁碟空間不足的問題
對於MyISAM存儲引擎的表,可將表的數據文件和索引文件mv到磁碟空間充足的分區上,然後在原文件處創建符號鏈接。mv前必須停機或將表鎖定。
對於InnoDB存儲引擎的表,可以增加一個新的數據文件,具體實現方法是在參數innodb_data_file_path中增加此文件的絕對路徑,如:innodb_data_file_path=/home/ibdata1:2000M;/home1/ibdata2:2000M:autoextend。
mysql.sock丟失後如何連接資料庫
如果指定localhost作為主機名,則會預設使用UNIX套接字文件連接,而不是TCP/IP。通過--protocol=tcp|socket|pipe|memory選項,可以顯示地指定連接協議。
訪問內網資料庫
通過中轉伺服器,使用ssh管道,或MySQL Proxy工具。