Linux無法登陸mysql怎么辦什么原因
MySQL是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。有用戶無法登陸,遇到這種情況該怎么辦呢?下面小編就給大家介紹下Linux無法登陸mysql的解決方法,一起來了解下吧。
Linux無法登陸mysql怎么辦?
以centos系統(tǒng)為例
首先:
cp /usr/share/doc/MySQL-server-5.5.24/my-medium.cnf /etc/my.cnf
其次:
touch /var/lib/mysql/mysql.scok
查看下數(shù)據(jù)庫(kù)運(yùn)行狀態(tài)
/etc/init.d/mysql status
提示
ERROR! MySQL is running but PID file could not be found
先打印MYSQL進(jìn)程
ps aux | grep mysql
然后KILL進(jìn)程
kill -9 pid1 pid2 …
再啟動(dòng)MYSQL
/etc/init.d/mysql start
再檢查mysql運(yùn)行狀態(tài)
/etc/init.d/mysql status
因?yàn)橐婚_始/etc下我是找不到my.cnf 這個(gè)文件的,/usr/share/doc/MySQL-server-5.5.24/這個(gè)下面有個(gè)my-default.cnf這個(gè)文件,看了看,感覺和my-medium.cnf差不多,就拷貝到etc目錄下了,來充當(dāng)my.cnf吧,
mysql有兩種啟動(dòng)方式,一種tcp,一種socket,一般來說tcp啟動(dòng)沒問題,只是socket啟動(dòng)才會(huì)出現(xiàn)上述問題。
補(bǔ)充:MySQL 數(shù)據(jù)庫(kù)常用命令
create database name; 創(chuàng)建數(shù)據(jù)庫(kù)
use databasename; 進(jìn)入數(shù)據(jù)庫(kù)
drop database name 直接刪除數(shù)據(jù)庫(kù),不提醒
show tables; 顯示表
describe tablename; 查看表的結(jié)構(gòu)
select 中加上distinct去除重復(fù)字段
mysqladmin drop databasename 刪除數(shù)據(jù)庫(kù)前,有提示。
顯示當(dāng)前mysql版本和當(dāng)前日期
select version(),current_date;
數(shù)據(jù)庫(kù)維護(hù)方法
在MySQL使用的過程中,在系統(tǒng)運(yùn)行一段時(shí)間后,可能會(huì)產(chǎn)生碎片,造成空間的浪費(fèi),所以有必要定期的對(duì)MySQL進(jìn)行碎片整理。
當(dāng)刪除id=2的記錄時(shí)候,發(fā)生的現(xiàn)象
這個(gè)時(shí)候發(fā)現(xiàn)磁盤的空間并沒有減少。這種現(xiàn)象就叫做碎片化(有一部分的磁盤空間在數(shù)據(jù)刪除以后(空),還是無法被操作系統(tǒng)所使用。)
常見的優(yōu)化:
# alter table xxx engine myisam;
# optimize table t1;
注意: 在實(shí)際開發(fā)的過程中,上面兩個(gè)語(yǔ)句盡量少使用,因?yàn)樵谑褂玫倪^程中,MySQL的表的結(jié)構(gòu)會(huì)整體全部重新整理,需要消耗很多的資源,建議在凌晨?jī)扇c(diǎn)鐘的時(shí)候執(zhí)行。(在linux下有定時(shí)器腳本可以執(zhí)行,crontab)
MySQL登陸相關(guān)文章: