茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1672195 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00143.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

DB研討會 : [轉貼]幾個有關 MySQL 資料庫的操作小技巧

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]幾個有關 MySQL 資料庫的操作小技巧
檢查資料表是否存在
$tbchk = "SHOW TABLES LIKE '$table' ";
$tbchkres = mysql_query($tbchk);

$tbchkres 回傳 1 代表存在,回傳 0 代表不存在。



Create table from other table's structure
根據已經存在的資料表結構自動建立新資料表
CREATE TABLE 'new_table' LIKE 'old_table';




mysqldump
假設 MySQL 的使用者名稱是 username,欲輸出的資料庫名稱為 database,輸出至 dump.sql
mysqldump --user=username --password --default-character-set=latin1 database 〉 dump.sql




BigDump: Staggered MySQL Dump Importer

http://www.ozerov.de/bigdump.php

將龐大的 .sql 檔倒進去資料庫中,可避免 phpmyadmin 中 php.ini 上傳檔案限制大小,使 .sql 沒辦法上傳上去。



Backup

10 Ways to Automatically & Manually Backup MySQL Database

http://www.noupe.com/php/10-ways-to-automatically-manually-backup-mysql-database.html



MySQL 資料庫增量備份

http://blog.miniasp.com/post/2009/07/How-to-MySQL-Incremental-Backup-using-Binary-Log.aspx



Forgot Root Password

忘記 MySQL Root 密碼時可重新設定密碼。

停止 MySQL Server 後,重新啟動 Server,並增加參數「–skip-grant-tables」
# mysqld_safe --skip-grant-tables &

使用無密碼之 root 帳號登入 MySQL
# mysql -u root mysql

重新設定 root 密碼
mysql> UPDATE user SET password=PASSWORD('newpassword') WHERE user='root';
mysql> flush privileges;

重新啟動 MySQL Server 後即可用新密碼登入。

Ref: http://www.thegeekstuff.com/2009/07/how-to-reset-forgot-mysql-root-password-on-unix-linux-windows/

參考 https://wiki.sars.tw/doku.php?id=mysql:basic



取得 Table 的註解
--標準寫法
SHOW FULL FIELDS FROM database.table

--也可以寫成
SHOW FULL FIELDS FROM table FROM database

參考 http://liaosankai.pixnet.net/blog/post/18480448




原文出處:幾個有關資料庫操作 | 資訊組部落格
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]如何讓某一使用者透過 phpMyAdmin 登入時只能看到要給他管理的資料表
如何讓某一使用者透過 phpMyAdmin 登入時只能看到要給他管理的資料表?

如果您新增一個使用者只允許他有使用某些資料庫權限時,在新增此使用者時不要給任何的權限,
改由phpMyAdmin首頁中的[權限]連結進入並選定編輯的使用者,進入後會有幾個項目,選擇[指定資料庫權限],
再做權限的編輯即可給定該使用者可使用哪些資料庫或資料庫下的資料表的權限。

也就是說,先建立一個使用者,給他帳號密碼,但是不給他任何權限!
然後透過 phpMyAdmin 首頁的『權限』功能來編輯該使用者可以「操作哪個資料庫」!
記得權限修改完後都要『FLUSH PRIVILEGES』喔!




另外一個方法:
案例: 系統管理員想讓 admin 這個帳號透過 phpmyadmin 管理 mydb 資料庫, 但又不想讓 admin 看到 mydb 裡面的某表格內容

解決辦法: 以 grant 命令逐一賦予 mydb 各資料表權限, 略過特定資料表

#清除權限設置. 如果 admin 帳號從未建立則省略此步驟
$> mysql -u root -p -A mysql
mysql> delete from tables_priv where user='admin' and db='mydb';
mysql> revoke all privileges from admin@localhost;
mysql> flush privileges;
mysql> exit

#匯出目的資料庫
$> mysqldump -u root -p mydb > mydb.sql

#取出所有表格名稱, 用來組合 grant (賦予權限) sql 命令
$> for i in $(grep 'CREATE TABLE' mydb.sql | cut -d '`' -f 2); do \
>    echo "grant select,insert,update,delete on mydb.$i to admin@localhost;" | \
>    tee -a ok.sql; \
>  done
$> echo "flush privileges;" >> ok.sql

#移除不想賦予權限的表格
$> sed -i '/secret_table/d' ok.sql

#匯入權限設置
$> mysql -u root -p < ok.sql

#如果 admin 這個帳號從未建立, 匯入 ok.sql 的同時系統將自動建立該帳號, 密碼為空白
#匯入完成後記得設定密碼:
$> mysql -u root -p -A mysql
mysql> update user set password=password('admins_password') where user='admin';
mysql> exit

#如啟用了新版 phpmyadmin 的關聯資料表附加功能 (advanced features, pmadb)
#須賦予必要權限:
$> mysql -u root -p -A mysql
mysql> grant select,insert,update,delete on phpmyadmin.* to admin@localhost;
mysql> flush privileges;
mysql> exit




冷日參考文件:
PROLinux - 技術支援討論區 - 技術支援討論區 - MySQL用戶可以存取他自己的資料庫
mysql 權限管理備忘 « Jamyy's Weblog
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|