ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์CMS & Free Scriptใครลง WPMU แล้ว tables เยอะจัด ลองทำ Multiple databases ดูซิ
หน้า: [1] 2   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ใครลง WPMU แล้ว tables เยอะจัด ลองทำ Multiple databases ดูซิ  (อ่าน 7009 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« เมื่อ: 27 ธันวาคม 2009, 20:40:37 »

Multiple databases plugin (db.php) for WordPress MU



I was working on importing 1600+ separate WordPress blogs to WordPress MU. In a week, I managed to successfully import all those blogs using my custom import/export scripts. My WordPress MU database was containing 10.000+ tables, and IMHO that was pretty horrible. I tried to figure out "WP_USE_MULTIPLE_DB" by checking the code, and looking for some other free solutions, but couldn’t find anything working the way I wanted.

Here is my multi database plugin for WordPress MU. It can work with any number of databases (I am currenly using 128 databases, so I have around 100 tables in each database). Also, I am providing split_dbs scripts, witch will copy tables from single Wordpress MU database, to multiple databases.

Installation/Configuration

Copy db.php to a temporary directory. On lines 59, 60 find:
โค๊ด:
var $max_dbs = 128;
var $base_db_name = 'blog_';

In $max_dbs put number of databases you are planning to use. $base_db_name is database name prefix, so if you put i.e. ‘blog_’, your databases will be named blog_0, blog_1, blog_2 etc up to (in this case) blog_127.
When you are done with those variables, copy this file to wp-content directory.

Now you need to edit split_dbs.php. At the top of the file you will find configuration block. Please make sure you set exactly the same values for $max_dbs and $base_db_name like you have in db.php, and database connection parameters (including table prefix) that you are using in wp-config.php.
When you are done editing split_dbs.php, call this script from your browser or command line.


Download: http://webdevguru.com/dl/multi_db_wpmu_271.zip
Thank: http://webdevguru.com/wpmu-hacks.html

จะใช้งานจริงๆ จะติดตอน create db ต้องศึกษา DirectAdmin API นิดหน่อย (สำหรับโฮส DirectAdmin)
http://www.directadmin.com/api.html

หรือหากไม่รู้เรื่องก็ใช้แบบนี้ (แบบนี้โหดไปหน่อย ทำเหมือนกับเข้าไปสร้าง db ใน da)

โค๊ด:
<?
$ch =curl_init('http://domain.com:2222/CMD_DB');
 curl_setopt($ch, CURLOPT_USERPWD, 'username:password');
 curl_setopt ($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);
 curl_setopt ($ch, CURLOPT_POSTFIELDS, "domain=domain.com&action=create&name=test&user=test&passwd=123456&passwd2=123456");
 $res = curl_exec ($ch);
 print_r($res);
?>
โค้ดนี้ เครดิต คุณ Thaitumweb
« แก้ไขครั้งสุดท้าย: 28 ธันวาคม 2009, 18:50:20 โดย untilate » บันทึกการเข้า
desiger
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 22
ออฟไลน์ ออฟไลน์

กระทู้: 1,424



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 27 ธันวาคม 2009, 20:43:37 »

ว้าวๆๆๆๆ

ขอบคุณครับบบ

เดยวลองมั่วดู

อิอิ
บันทึกการเข้า

มาอัพเดท NOD32 รหัส NOD32 Username Password NOD 32 กันครับ
untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« ตอบ #2 เมื่อ: 27 ธันวาคม 2009, 21:19:44 »

จะว่าไป เจ้า wpmu นี้ มันหนักจริงๆ
บันทึกการเข้า
easyeasy
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 13
ออฟไลน์ ออฟไลน์

กระทู้: 1,693



ดูรายละเอียด
« ตอบ #3 เมื่อ: 27 ธันวาคม 2009, 22:39:41 »

ขอบคุณครับ
บันทึกการเข้า

แต่งหน้าเกาหลี
ครีมหน้าใส - ผลิตภัณฑ์ครีมบำรุงผิว
benz4543
คนรักเสียว
*

พลังน้ำใจ: 15
ออฟไลน์ ออฟไลน์

กระทู้: 113



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 28 ธันวาคม 2009, 17:33:00 »

อ่านแล้ว งงครับ มีแบบ เข้าใจง่ายหน่อยครับ
ผมทำตามไม่ได้สะที
ผมใช้ wpmu ที่ hostmonster เลยสนใจตัวนี้ครับ
รบกวนอธิบายอีกนืด
บันทึกการเข้า
untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« ตอบ #5 เมื่อ: 28 ธันวาคม 2009, 18:49:41 »

เดี๋ยวผมจะมาสอนเป็นภาษาไทยให้อีกทีนะครับ

แต่ของย้ำว่า ถ้าภาษาอักกฤษไม่แย่เกินไป ก็เข้าใจครับ แค่อ่านตามนั้นแล้วทำตามเลย..

ดูภาพข้างบนยืนยัน

ช่วงนี้ผมสอบได้แต่แว๊บๆ มาครับ เดี๋ยวอาทิตย์ปีใหม่จะมาสอนให้ครับ
« แก้ไขครั้งสุดท้าย: 28 ธันวาคม 2009, 18:55:16 โดย untilate » บันทึกการเข้า
pigdoll
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 129
ออฟไลน์ ออฟไลน์

กระทู้: 6,404



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 28 ธันวาคม 2009, 18:52:39 »

เด๋วไปมั่วๆ ดู
  wanwan002
บันทึกการเข้า

benz4543
คนรักเสียว
*

พลังน้ำใจ: 15
ออฟไลน์ ออฟไลน์

กระทู้: 113



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 28 ธันวาคม 2009, 19:10:41 »

แบบนี้ เรียกว่า wild card หรือเปล่าครับ

ที่ hostmonster ทำแบบนี้ ไม่ได้ครับ
มีวิธีอื่นอีกหรือเปล่าครับ

wpmu แบบ subdomain ใน hostmoster

ผมมี 2 host ใช้ wildcard ไม่ได้ทั้ง 2 host เลย
hostinglotus ของไทย
hostmonster    usa

อื้อ ท่านเทพ ช่วยสอนหน่อยครับ
บันทึกการเข้า
untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« ตอบ #8 เมื่อ: 28 ธันวาคม 2009, 19:15:12 »

แบบนี้ เรียกว่า wild card หรือเปล่าครับ

ที่ hostmonster ทำแบบนี้ ไม่ได้ครับ
มีวิธีอื่นอีกหรือเปล่าครับ

wpmu แบบ subdomain ใน hostmoster

ผมมี 2 host ใช้ wildcard ไม่ได้ทั้ง 2 host เลย
hostinglotus ของไทย
hostmonster    usa

อื้อ ท่านเทพ ช่วยสอนหน่อยครับ


คนละเรื่องกันครับ นี่ไม่ได้เกี่ยวกับโดเมน

มันเกี่ยวกับ ฐานข้อมูลอะครับ

แบบ แบ่งเป็นฐานข้อมูลย่อยๆ จะได้ลด record ครับ
บันทึกการเข้า
keox
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 21
ออฟไลน์ ออฟไลน์

กระทู้: 877



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 28 ธันวาคม 2009, 19:26:08 »

มารอคนสอนจ๊ะ
บันทึกการเข้า

untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« ตอบ #10 เมื่อ: 29 ธันวาคม 2009, 23:26:55 »

หลังปีใหม่นะ
บันทึกการเข้า
PLUS+
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 72
ออฟไลน์ ออฟไลน์

กระทู้: 1,060



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 29 ธันวาคม 2009, 23:28:16 »

หลังปีใหม่นะ

เหมือนกันครับต้อง Backup กันยกใหญ่เลย 700MB กว่าๆ  Tongue
บันทึกการเข้า

รับทำเว็บ | ภาวะโลกร้อน | Android | โปร SF

รับออกแบบปรับแต่งเว็บไซต์โดยใช้ WordPress ติดต่อทาง PM
kanokk
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 87
ออฟไลน์ ออฟไลน์

กระทู้: 2,395



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 25 กุมภาพันธ์ 2010, 18:47:06 »

ขอขุดหน่อยนะครับ
ตอนนี้ WP 2.9.X แล้วอ่ะครับ
ไม่ทราบว่าใครมีไฟลล์ plugin ตัว MultiDB ที่รองรับ WPMU ตัวนี้ บ้างอ่ะครับ
รบกวนขอหน่อยนะครับ
บันทึกการเข้า

Sevennight
สมุนแก๊งเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 767



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 25 กุมภาพันธ์ 2010, 19:47:16 »

อ๋อ ได้ความรู้เลยครับ เห็นเค้าพูดกันไม่รู้มันคืออะไร  wanwan017
บันทึกการเข้า

nulek101
ก๊วนเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 220



ดูรายละเอียด
« ตอบ #14 เมื่อ: 21 มีนาคม 2010, 09:14:52 »


จะใช้งานจริงๆ จะติดตอน create db ต้องศึกษา DirectAdmin API นิดหน่อย (สำหรับโฮส DirectAdmin)
http://www.directadmin.com/api.html

หรือหากไม่รู้เรื่องก็ใช้แบบนี้ (แบบนี้โหดไปหน่อย ทำเหมือนกับเข้าไปสร้าง db ใน da)

โค๊ด:
<?
$ch =curl_init('http://domain.com:2222/CMD_DB');
 curl_setopt($ch, CURLOPT_USERPWD, 'username:password');
 curl_setopt ($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);
 curl_setopt ($ch, CURLOPT_POSTFIELDS, "domain=domain.com&action=create&name=test&user=test&passwd=123456&passwd2=123456");
 $res = curl_exec ($ch);
 print_r($res);
?>
โค้ดนี้ เครดิต คุณ Thaitumweb
[/quote]

เราเอา โค๊ตข้างบน  ไปใส่ที่ไหนเหรอครับ
บันทึกการเข้า
untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« ตอบ #15 เมื่อ: 21 มีนาคม 2010, 09:16:34 »


จะใช้งานจริงๆ จะติดตอน create db ต้องศึกษา DirectAdmin API นิดหน่อย (สำหรับโฮส DirectAdmin)
http://www.directadmin.com/api.html

หรือหากไม่รู้เรื่องก็ใช้แบบนี้ (แบบนี้โหดไปหน่อย ทำเหมือนกับเข้าไปสร้าง db ใน da)

โค๊ด:
<?
$ch =curl_init('http://domain.com:2222/CMD_DB');
 curl_setopt($ch, CURLOPT_USERPWD, 'username:password');
 curl_setopt ($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);
 curl_setopt ($ch, CURLOPT_POSTFIELDS, "domain=domain.com&action=create&name=test&user=test&passwd=123456&passwd2=123456");
 $res = curl_exec ($ch);
 print_r($res);
?>
โค้ดนี้ เครดิต คุณ Thaitumweb


เราเอา โค๊ตข้างบน  ไปใส่ที่ไหนเหรอครับ
[/quote]

ในไฟล์ที่ดาวโหลดไปอะ เอาไปแทน code สร้าง ตาราง sql อะ
บันทึกการเข้า
tenzamak
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 800
ออฟไลน์ ออฟไลน์

กระทู้: 13,984



ดูรายละเอียด
« ตอบ #16 เมื่อ: 21 มีนาคม 2010, 09:21:15 »

จริงๆแล้ว ถ้าเป็น vps   api ไม่ต้องใช้นะครับ
ส่วนโฮสปกติ admin ไม่ยอมเซ็ตแน่ๆเลย
บันทึกการเข้า

host ราคาเริ่มต้นที่ 500/ปี
host inter ราคาเริ่มต้นที่ 500/ปี
hosting singapore ราคาเริ่มต้นที่ 500/ปี
vps ราคาเริ่มต้นที่ 500/เดือน
nulek101
ก๊วนเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 220



ดูรายละเอียด
« ตอบ #17 เมื่อ: 21 มีนาคม 2010, 09:32:22 »

จริงๆแล้ว ถ้าเป็น vps   api ไม่ต้องใช้นะครับ
ส่วนโฮสปกติ admin ไม่ยอมเซ็ตแน่ๆเลย

สรุปว่า ไม่สามารถ สร้างได้ใช่ไหมครับ (ไม่รู้ว่าเข้าใจถูกไหม)
เขาเรียกว่าอะไรครับ ถ้าบอก admin เซ็ทให้
บันทึกการเข้า
tenzamak
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 800
ออฟไลน์ ออฟไลน์

กระทู้: 13,984



ดูรายละเอียด
« ตอบ #18 เมื่อ: 21 มีนาคม 2010, 11:37:49 »

จริงๆแล้ว ถ้าเป็น vps   api ไม่ต้องใช้นะครับ
ส่วนโฮสปกติ admin ไม่ยอมเซ็ตแน่ๆเลย

สรุปว่า ไม่สามารถ สร้างได้ใช่ไหมครับ (ไม่รู้ว่าเข้าใจถูกไหม)
เขาเรียกว่าอะไรครับ ถ้าบอก admin เซ็ทให้

กําหนดสิทธิ์ ให้ DB Name เข้าถึงได้ทุกๆ ฐานข้อมูล
ถ้าเป็น hosting ธรรมดา adminไม่ทําให้แน่นอนครับ เพราะมันเห็ฯทุก DB ในโฮส
บันทึกการเข้า

host ราคาเริ่มต้นที่ 500/ปี
host inter ราคาเริ่มต้นที่ 500/ปี
hosting singapore ราคาเริ่มต้นที่ 500/ปี
vps ราคาเริ่มต้นที่ 500/เดือน
g-ji
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 231
ออฟไลน์ ออฟไลน์

กระทู้: 3,254



ดูรายละเอียด เว็บไซต์
« ตอบ #19 เมื่อ: 21 มีนาคม 2010, 12:35:12 »

ปกติทำเหมือนจี้ป่าวหว่า

จี้เขียนสคริปท์ให้มันสร้างฐานข้อมูลขึ้นมา เยอะๆ

โค๊ด:
<?php
$max_dbs 
256;
$base_db_name 'wpmu_db';

$db_name     'wpmu';
$db_user     'root';
$db_password '';
$db_host     'localhost';

$table_prefix  'wp_';
//-Configuration-end------------------------------------------------------

$dbh = new PDO("mysql:host=$db_host;dbname=$db_name"$db_user$db_password);

// Create databases
for($i=0$i<$max_dbs$i++) {
$dbh->query('CREATE DATABASE IF NOT EXISTS '.$base_db_name.$i);
}

?>


ไม่แน่ใจว่าใช่ได้กับทุกโฮสป่าว แต่จริงๆ ไป copy มาจากเว็บไหนสักที่นี่แหละ เอามาแก้่นิดหน่อย

แล้วก็

ใช้สคริปท์ข้างล่าง เจน คำสั่ง เอาไว้ใช้ใน db_setting
โค๊ด:
<?php 
$shot 
's';
$dbhost 'localhost';
$dbuser 'root';
$dbpass '';
$dbcount '256';
$dbname 'wpmu_db';

for(
$i 0;$i $dbcount;$i++){

echo "add_db_server('$shot$i', 0, 'mysql', 1, 1, '$dbhost', '', '$dbname$i', '$dbuser', '$dbpass');\n";
 
 }
?>


ส่วนอันนี้โค้ด db_setting
โค๊ด:
http://g-ji.com/wp-content/uploads/2010/03/db-settings.php_.txt

ตรงจุดที่ให้ใส่ก็บอกไว้นะ เอาโค้ดที่เจนจากสคริปท์ (อันที่ 2) มันจะออกมาแบบเนี่ย ▼ ตามจำนวนฐานข้อมูลที่ใส่ไป
โค๊ด:
add_db_server('s0', 0, 'mysql', 1, 1, 'localhost', '', 'wpmu_db0', 'root', '');

เสร็จแล้วเลื่อนลงไปอีกหน่อย ตรง add_global_server ไม่ต้องไปยุ่งอะไร ลงไปอีก

โค๊ด:
$dbsnum=256; // << จำนวนฐานข้อมูลที่สร้างไว้
$blogs_per_db=4; // << จำนวนบล็อกต่อฐานข้อมูลนั้นๆ จากสคริปท์ตั้งไว้ 4 บล็อกต่อฐานข้อมูล

for($db_id=1; $db_id<=$dbsnum; $db_id++){
    $dataset = 's' . $db_id;
    $max = $db_id * $blogs_per_db + 1; // include
    $min = $max - $blogs_per_db + 1; // include
    for($blog_id=$min; $blog_id<=$max; $blog_id++){
        add_blog_tables($dataset, $blog_id);
    }

บล็อกที่ 2 เป็นต้นไป มันจะสร้างลงฐานข้อมูล ตามที่เซ็ทไว้ (จากสคริปท์ ฐานละ 4 บล็อก) ไล่ไปเรื่อยๆ  Tongue จนครบ 256 ฐาน (ตามโค้ดตัวอย่าง)

จากโค้ดตัวอย่างนี่ สร้างได้ 1024 บล็อก  Shocked

ทดสอบใน local host อย่างเดียว ใช้ได้ไม่มีบั๊ก  Embarrassed

เอามาแปะ หาคนเทสในโฮสจริง ! ถ้ามันเวิร์ค หรือ ใช้ได้ เดี๋ยวหาคนช่วยพัฒนาต่อ ให้มันดูดีหน่อย มีหน้า install อินเตอร์เฟส สวยๆ ใช้ง่ายๆ แค่กรอกข้อมูล กด ok รอสคริปท์ทำงาน แล้วก็ ตู้มมม ออกมาเป็น โกโก้ครันช์

แก้ไข

ไฟล์ไม่ครบ

โค๊ด:
http://g-ji.com/wp-content/uploads/2010/03/share-db.zip

 Tongue
หลักจากติดตั้ง wpmu เสร็จแล้่ว ย้ายไฟล์ ตามนี้
db.php >> wp-content
create_multidb.php >> root
create_multidb_config.php >> root
db-settings.php >> root

แก้ไข wp-config.php

เพิ่ม

define('WPMU', true);
require('db-settings.php');

ไว้บนสุด (ใน <?php)

***
แก้ไขไฟล์เพิ่มนิดหน่อย

โค้ดตัวอย่างที่ให้โหลดแบบ zip เซ็ทค่าไว้หมดแล้ว สร้างฐานข้อมูลเพิ่ม ก็พอ

ลองใช้ในเครื่องตัวเองดูก่อนแล้วค่อยไปลองบนโฮสจริง  wanwan009
« แก้ไขครั้งสุดท้าย: 21 มีนาคม 2010, 13:35:35 โดย g-ji » บันทึกการเข้า

หน้า: [1] 2   ขึ้นบน
พิมพ์