亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL使用的常見問題解決與應用技巧匯總

2024-07-24 13:15:04
字體:
來源:轉載
供稿:網友

前言

在MySQL日常開發或者是維護中,有一些問題或是故障往往是難以避免的,如丟失密碼、表損壞。在此總結一下常見的問題,以備今后所需。

一、 忘記 MySQL 的 root 密碼

1. 登錄到數據庫所在的服務器,手工 kill 掉 mysql 進程。

(1) 登錄到數據庫所在的服務器,手工 kill 掉 MySQL 進程:

root@bogon:/data/mysql# kill `cat ./mysql.pid`

其中,mysql.pid 指的是 MySQL 數據目錄下的 pid 文件,它記錄了 MySQL 服務的進程號。

(2) 使用 --skip-grant-tables 選項重啟 MySQL 服務:

zj@bogon:/data/mysql$ sudo /usr/local/mysql/bin/mysqld --skip-grant-tables --user=root &

--skip-grant-tables 選項意思是啟動 MySQL 服務時跳過權限表認證。啟動后,連接到 MySQL 的 root 將不需要口令。

(3) 用空密碼的 root 用戶連接到 mysql ,并且更改 root 口令:

zj@bogon:/usr/local/mysql/bin$ mysql -urootWelcome to the MySQL monitor. Commands end with ; or /g.Your MySQL connection id is 3Server version: 5.7.18-log Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.MySQL [(none)]> set password = password('123456');ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statementMySQL [(none)]> use mysqlDatabase changedMySQL [mysql]> update user set authentication_string=password('123456') where user="root" and host="localhost";Query OK, 1 row affected, 1 warning (0.02 sec)Rows matched: 1 Changed: 1 Warnings: 1MySQL [mysql]> flush privileges;Query OK, 0 rows affected (0.00 sec)MySQL [mysql]> exit;Bye****************************************************************zj@bogon:/usr/local/mysql/bin$ mysql -uroot -p123456mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or /g.Your MySQL connection id is 7Server version: 5.7.18-log Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.MySQL [(none)]> 

由于使用了 --skip-grant-tables 選項啟動,使用 “set password” 命令更改密碼失敗,直接更新 user 表的 authentication_string(測試版本為5.7.18,有的版本密碼字段是 ‘password') 字段后,更改密碼成功。刷新權限表,使權限認證重新生效。重新用 root 登錄時,就可以使用剛剛修改后的口令了。

二、如何處理 myisam 存儲引擎的表損壞

有的時候可能會遇到 myisam 表損壞的情況。一張損壞的表的癥狀通常是查詢意外中斷,并且能看到下述錯誤:

  • 'table_name.frm' 被鎖定不能更改
  • 不能找到文件 'tbl_name.MYYI' (errcode:nnn)
  • 文件意外結束
  • 記錄文件被毀壞
  • 從表處理器得到錯誤 nnn。

通常有以下兩種解決方法:

1. 使用 myisamchk 工具

使用 MySQL 自帶的 myisamchk 工具進行修復:

shell> myisamchk -r tablename

其中 -r 參數的含義是 recover,上面的方法幾乎能解決所有問題,如果不行,則使用命令:

shell> mysiamchk -o tablename

其中 -o 參數的含義是 --safe-recover,可以進行更安全的修復。

2. 使用 sql 命令

使用 MySQL 的 check table 和 repair table 命令一起進行修復,check table 用來檢查表是否有損壞;repair table 用來對壞表進行修復。

三、 數據目錄磁盤空間不足的問題

系統上線后,隨著數據量的不斷增加,會發現數據目錄下的可用空間越來越小,從而給應用造成了安全隱患。

1. 對于 myisam 存儲引擎的表

對于 myisam 存儲引擎的表,在建表時可以用如下選項分別制定數據目錄和索引目錄存儲到不同的磁盤空間,而默認會同時放在數據目錄下:

data directory = 'absolute path to directory'index directory = 'absolute path to directory'

如果表已經創建,只能先停機或者將表鎖定,防止表的更改,然后將表的數據文件和索引文件 mv 到磁盤充足的分區上,然后在原文件處創建符號鏈接即可。

2. 對于 innodb 存儲引擎的表

因為數據文件和索引文件是存放在一起的,所以無法將它們分離。當磁盤空間出現不足時,可以增加一個新的數據文件,這個文件放在充足空間的磁盤上。

具體實現方法是在參數 innodb_data_file_path 中增加此文件,路徑寫為新磁盤的絕對路徑。

例如,如果 /home 下空間不足,希望在 /home1 下新增加一個可自動擴充數據的文件,那么參數可以這么寫:

innodb_data_file_path = /home/ibdata1:2000M;/home1/ibdata2:2000M:autoextend

參數修改后,必須重啟數據庫才可以生效。

四、DNS反向解析的問題 (5.0 以后的版本默認跳過域名逆向解析)

在客戶端執行 show processlist 命令,有時會出現很多進程,類似于:

unauthenticated user | 192.168.10.10:55644 | null | connect | null | login | null

這些進程會累計的越來越多,并且不會消失,應用無法正常相應,導致系統癱瘓。

MySQL 在默認情況下對于遠程連接過來的 IP 地址會進行域名的逆向解析,如果系統的 hosts 文件中沒有與之對應的域名,MySQL 就會將此連接認為是無效用戶,所以下進程中出現 unauthenticated user 并導致進程阻塞。

解決的方法很簡單,在啟動時加上 --skip-name-resolve 選項,則 MySQL 就可以跳過域名解析過程,避免上述問題。

五、mysql.sock 丟失后如何連接數據庫

在 MySQL 服務器本機上連接數據庫時,經常會出現 mysql.sock 不存在,導致無法連接的問題。這是因為如果指定 localhost 作為一個主機名,則 mysqladmin 默認使用 Unix 套接字文件連接,而不是 tcp/ip。而這個套接字文件(一般命名為 mysql.sock)經常會因為各種原因而被刪除。通過 --protocol=TCP|SOCKET|PIPE|MEMORY 選項,用戶可以顯式地指定連接協議,下面演示使用了 Unix 套接字失敗后使用 tcp 協議連接成功的例子。

1. Unix 套接字連接:

zj@bogon:~$ mysqlERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

2. tcp 連接

zj@bogon:~$ mysql --protocol=TCP

六、MyISAM表過大,無法訪問問題

首先我們可以通過myisamchk命令來查看MyISAM表的情況。如下圖,我查看admin表

mysql的一些坑,mysql,常見問題,mysql面試常見問題

  • datefile length代表當前文件大小
  • keyfile length代表索引文件大小
  • max datefile length 最大文件大小
  • max keyfile length 最大索引大小

可以通過如下命令來進行擴展數據文件大小

alter table table_name MAX_ROWS=88888888 AVG_ROW_LE=66666

七、數據目錄磁盤空間不足的問題

針對MyISAM存儲引擎

可以將數據目錄和索引目錄存儲到不同的磁盤空間。

針對InnoDB存儲引擎

對于InnoDB存儲引擎的表,因為數據文件和索引文件時存放在一起的。所以無法將他們分離。當磁盤空間出現不足時候,可以增加一個新的數據文件,這個文件放在有充足空間的磁盤上。具體實現是通過InnoDB_data_file_path中增加此文件。

innodb_data_file_path=/home/mysql/data:10000M;/user/mysql/data:10000M:autoextend 

參數修改之后,需要重啟服務器,才可以生效。

八、同一臺主機上安裝多個Mysql

除了每個Mysql安裝目錄不能相同外,還需要的是port和socket不能一樣。

mysql.sock就是客戶端連接與mysql間通信用的。socket文件,只能本機使用,遠程連接要通過tcp/ip了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
全球成人中文在线| 亚洲淫片在线视频| 国产成人免费91av在线| 亚洲网站在线播放| 亚洲一区二区三区成人在线视频精品| 国产精品视频一区二区高潮| 国产一区视频在线播放| 亚洲国产精品va| 精品国产视频在线| 日韩美女写真福利在线观看| 欧美午夜女人视频在线| 国产噜噜噜噜久久久久久久久| 欧美性猛交xxxxx免费看| 亚洲国产日韩一区| 亚洲国产天堂网精品网站| 日韩av在线直播| 亚洲大胆人体av| 国产欧美婷婷中文| 国产免费亚洲高清| 97热在线精品视频在线观看| 欧美一级大片视频| 成人免费大片黄在线播放| 国产精品一二三在线| 日韩中文字幕在线免费观看| 欧美日韩综合视频网址| 中文字幕日韩电影| 亚洲一区二区三区成人在线视频精品| 精品二区三区线观看| 亚洲国产日韩欧美综合久久| 黄网动漫久久久| 欧美性理论片在线观看片免费| 国产精品爽爽爽爽爽爽在线观看| 日韩欧美主播在线| 欧美理论电影网| 亚洲国产精品推荐| 日韩中文字幕视频在线| 亚洲在线免费视频| 亚洲一区二区在线播放| 深夜福利一区二区| 91香蕉国产在线观看| 在线日韩第一页| 69久久夜色精品国产69| 日韩中文字幕在线播放| 国产国语刺激对白av不卡| 日韩激情第一页| 日本成人精品在线| 国产一区二区久久精品| 亚洲区一区二区| 国产亚洲日本欧美韩国| 亚洲国产欧美久久| 亚洲精品小视频在线观看| 欧美激情区在线播放| 精品久久久久久久久久ntr影视| 精品动漫一区二区三区| 欧美另类69精品久久久久9999| 欧美壮男野外gaytube| 91精品国产91久久| 5566日本婷婷色中文字幕97| 亚洲国产91色在线| 亚洲第一区第一页| 欧美成aaa人片在线观看蜜臀| 国产成人精品最新| 欧美激情三级免费| 清纯唯美亚洲激情| 亚洲国产精品网站| 亚洲欧洲高清在线| 国语自产精品视频在线看抢先版图片| 久久久久久国产精品三级玉女聊斋| 精品国产乱码久久久久久天美| 成人在线中文字幕| 91亚洲国产成人精品性色| 日韩中文字幕欧美| 色多多国产成人永久免费网站| 日本中文字幕久久看| 在线免费观看羞羞视频一区二区| 亚洲欧美在线第一页| 欧美极品少妇xxxxⅹ免费视频| 日韩精品在线视频| 欧美激情中文字幕乱码免费| 中文字幕免费精品一区高清| 日韩精品在线视频| 日韩在线观看免费网站| 成人黄在线观看| 国产精品成人一区二区| 欧美久久精品午夜青青大伊人| 78m国产成人精品视频| 国产日韩精品在线播放| 黑人精品xxx一区| 国产97免费视| 亚洲香蕉在线观看| 日韩欧美国产视频| 国产一区二区动漫| 日韩高清免费观看| 欧美日韩一区二区三区在线免费观看| 国产91在线高潮白浆在线观看| 2021国产精品视频| 亚洲欧美一区二区激情| 欧美日韩精品在线视频| 亚洲女在线观看| 亚洲视频网站在线观看| 日韩在线视频观看正片免费网站| 亚洲精品大尺度| 国产精品欧美日韩| 成人激情视频在线| 久久久综合av| 欧美疯狂xxxx大交乱88av| 久久久精品中文字幕| 欧美黑人性猛交| 欧美日韩亚洲高清| 97精品视频在线| 中文字幕欧美日韩在线| 精品美女国产在线| 欧美丰满少妇xxxxx做受| 久久久久久久久久久久av| 日韩女优人人人人射在线视频| 欧美日韩在线影院| 成人精品一区二区三区电影免费| 久久偷看各类女兵18女厕嘘嘘| 韩剧1988在线观看免费完整版| 国产成人拍精品视频午夜网站| 国产xxx69麻豆国语对白| 亚洲香蕉伊综合在人在线视看| 精品久久香蕉国产线看观看亚洲| 欧美成人剧情片在线观看| 韩曰欧美视频免费观看| 日韩欧美主播在线| 97视频在线播放| 97在线免费视频| 九九热视频这里只有精品| 97碰碰碰免费色视频| 青青久久av北条麻妃海外网| 日韩大陆欧美高清视频区| 狠狠爱在线视频一区| 亚洲91av视频| 日韩女优人人人人射在线视频| 日韩国产精品一区| 久久精品国产v日韩v亚洲| 日日噜噜噜夜夜爽亚洲精品| 欧美黄色片免费观看| 欧美限制级电影在线观看| 日韩av电影国产| 精品中文视频在线| 国产成人综合精品在线| 亚洲天堂av网| 亚洲一区二区国产| 亚洲电影中文字幕| 91在线国产电影| 国产精品久久久久久久av大片| 成人黄色影片在线| 亚洲一区二区少妇| 91国语精品自产拍在线观看性色| 国产精品成人国产乱一区| 精品国产欧美成人夜夜嗨| 欧美日韩日本国产| 岛国av午夜精品| 成人高清视频观看www| 久久久综合av| 九九综合九九综合| 色多多国产成人永久免费网站| 青青精品视频播放| 精品久久香蕉国产线看观看亚洲| 日韩毛片在线看| 欧美色道久久88综合亚洲精品| 国产精品色视频|