发新话题
打印

MYSQL 排错

MYSQL 排错

进入数据库:
# mysql -h localhost -u -root -p

如果连root都进不去了。。。。。
可以通过加
--skip-grant-tables
重启数据库
REDHAT


也可以在 /etc/my.cnf 中 在server部分加上 skip-grant-tables 也可以!!

FreeBSD系統: /usr/local/libexec/mysqld --skip-grant-tables &

以root进入MYSQL后会看到如下画面
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.33-log OpenBSD port: mysql-server-5.0.33

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


选择数据库,首先看他到底被你改了那些资料。。。:
通过
select * from db ;  可以查看db表的狀況.

可以看到目前 db 中 共有两条记录(最下方会显示符合条数). 及其他相关的权限资料
如果你不确定是否相同,最笨的方法就是删掉重建
由于此例我看到两个资料的Host 列都是 localhost 所以 透過 delete from `表名` where `列名`='值';
进行刪除资料, 若是资料不是localhost 就如法炮制 把localhost改成名称即可.


例如: 若其中一个是 ohaha.ks.edu.tw 一个是 localhost 则下分別两行指令.
delete from `db` where `Host`='ohaha.ks.edu.tw';
delete from `db` where `Host`='localhost';

系統会在你下完指令后 把结果告知, 不断重复类似的刪除动作
直到 select * from db;  指令显示符合条数为 0 则完成刪除!!

刪除完之后 就是重建列資料.
由于是空的 所以直接用 insert 直接輸入资料.
insert into 资料表名称 (列1,列2,......) values ('值1','值2',....)



至於如何知道每個不同資料表中有哪些欄位 這也很簡單 只要用 select * from 資料表名稱;  就會顯示所有欄位
如之前的 select * from db ; 就會有類似的部分 照抄就好 .

看到了吧....資料欄位名稱 都出現嚕..

剛剛只有建立 sfs3 資料庫權限 別忘了還有root的 仿照網頁上的 db資料表進行設定
由於相差不大 只有紅色部分不同 只要稍微改一下就可以 (別忘了活用上下鍵 會出現先前輸入過的指令喔)


如此就完成修改 db 資料表嚕 !!

同樣的 host 和 user 資料表也是相同的改法....比較不同的是user 資料表 因為有一欄是編碼後的密碼
沒有人這麼聰明知道編碼後的結果吧..所以留空 也就是用 ' ' 即可. 如下圖紅色部分


更改完 db  user  host 三個資料表後 就可以離開生硬的文字操作 透過 phpMyAdmin 登入進行修改


由於先前是略過權限檢查 所以修正完畢後 請務必一定要重新啟動 MySQL !!

若是無法順利啟動 phpMyAdmin 請檢查您的 config.inc.php 中的這三個地方


如此應就能夠順利啟動. 順利進入 phpMyAdmin 後 第一件事情是把 root 和 sfs3man (學務管理帳號) 設定密碼.
選擇 mysql 資料庫的 user 資料表


右方會有瀏覽的選項


點選之後會看到兩筆資料 請按 編輯 紐


修改密碼 請務必記得 Password 欄位  要選擇 PASSWORD 函數 並且輸入 未編碼前的密碼.
修改完別忘了存檔. 相同的 root 也是 別忘了改!!


改完了之後 請點選  主目錄  選擇 重新載入 MySQL 讓設定生效!!


最后若是系統仍有问题 別忘了确认一下 相关路径/include/config.php/ 中的這一部分
换个头像,看见广告就眼红,直接封ID。

TOP

发新话题