Nothing 2007-7-24 09:05
MYSQL 排错
进入数据库:
[size=2][color=#000000][color=#ff0000]# mysql -h localhost -u -root -p[/color]
[/color][/size][size=2][color=#000000][img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-01.JPG[/img]
如果连root都进不去了。。。。。
可以通过加[/color][/size][size=2][color=#000000][color=#3333ff]--skip-grant-tables[/color]
重启数据库
REDHAT
[/color][/size][size=2][color=#000000][img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-02.JPG[/img]
[/color][/size][size=2][color=#000000]也可以在 /etc/my.cnf 中 在server部分加上 skip-grant-tables 也可以!!
FreeBSD系統: [color=#ff0000]/usr/local/libexec/mysqld --skip-grant-tables &[/color]
以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>
选择数据库,首先看他到底被你改了那些资料。。。:
通过[/color][/size][size=2][color=#000000][color=#ff0000]select * from db ;[/color] 可以查看db表的狀況.
[/color][/size][size=2][color=#000000][img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-05.JPG[/img]
可以看到目前 db 中 共有两条记录(最下方会显示符合条数). 及其他相关的权限资料
如果你不确定是否相同,最笨的方法就是删掉重建
[/color][/size][size=2][color=#000000]由于此例我看到两个资料的Host 列都是 localhost 所以 透過 delete from `表名` where `列名`='值';
进行刪除资料, 若是资料不是localhost 就如法炮制 把localhost改成名称即可.
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-06.JPG[/img]
例如: 若其中一个是 ohaha.ks.edu.tw 一个是 localhost 则下分別两行指令.
[color=#ff0000]delete from `db` where `Host`='ohaha.ks.edu.tw';
delete from `db` where `Host`='localhost';
[/color]
系統会在你下完指令后 把结果告知, 不断重复类似的刪除动作
直到 [color=#ff0000]select * from db;[/color] 指令显示符合条数为 0 则完成刪除!!
刪除完之后 就是重建列資料.
由于是空的 所以直接用 insert 直接輸入资料.
[color=#ff0000]insert into 资料表名称 (列1,列2,......) values ('值1','值2',....)[/color]
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-07.JPG[/img]
至於如何知道每個不同資料表中有哪些欄位 這也很簡單 只要用 select * from 資料表名稱; 就會顯示所有欄位
如之前的 select * from db ; 就會有類似的部分 照抄就好 .
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-08.JPG[/img]
看到了吧....資料欄位名稱 都出現嚕..
剛剛只有建立 sfs3 資料庫權限 別忘了還有root的 仿照網頁上的 db資料表進行設定
由於相差不大 只有紅色部分不同 只要稍微改一下就可以 (別忘了活用上下鍵 會出現先前輸入過的指令喔)
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-09.JPG[/img]
如此就完成修改 db 資料表嚕 !!
同樣的 host 和 user 資料表也是相同的改法....比較不同的是user 資料表 因為有一欄是編碼後的密碼
沒有人這麼聰明知道編碼後的結果吧..所以留空 也就是用 ' ' 即可. 如下圖紅色部分
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-10.JPG[/img]
[color=#ff0000][color=#000000]更改完 db user host 三個資料表後 就可以離開生硬的文字操作 透過 phpMyAdmin 登入進行修改
[/color][img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-11.JPG[/img]
由於先前是略過權限檢查 所以修正完畢後 請務必一定要重新啟動 MySQL !![/color]
若是無法順利啟動 phpMyAdmin 請檢查您的 config.inc.php 中的這三個地方
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-12.JPG[/img]
如此應就能夠順利啟動. 順利進入 phpMyAdmin 後 第一件事情是把 root 和 sfs3man (學務管理帳號) 設定密碼.
選擇 mysql 資料庫的 user 資料表
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-13.JPG[/img]
右方會有瀏覽的選項
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-14.JPG[/img]
點選之後會看到兩筆資料 請按 編輯 紐
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-15.JPG[/img]
修改密碼 請務必記得 Password 欄位 要選擇 PASSWORD 函數 並且輸入 未編碼前的密碼.
修改完別忘了存檔. 相同的 root 也是 別忘了改!!
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-16.JPG[/img]
改完了之後 請點選 主目錄 選擇 重新載入 MySQL 讓設定生效!!
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-17.JPG[/img]
最后若是系統仍有问题 別忘了确认一下 相关路径/include/config.php/ 中的這一部分
[img]http://pub.mlc.edu.tw/files/000014/mysql/mysql-18.JPG[/img][/color][/size]