จะเปลี่ยนชื่อโดเมนในฐานข้อมูล Wordpress ได้อย่างไร


12

ฉันมีฐานข้อมูล Wordpress ซึ่งติดตั้งในสภาพแวดล้อมการพัฒนา ... ดังนั้นการอ้างอิงทั้งหมดไปยังเว็บไซต์นั้นมีที่อยู่ IP คงที่ (พูด 192.168.16.2) ตอนนี้ฉันต้องย้ายฐานข้อมูลนั้นไปยังการติดตั้ง Wordpress ใหม่บนโฮสติ้ง ปัญหาคือว่าการถ่ายโอนข้อมูล SQL มีการอ้างอิงจำนวนมากไปยังที่อยู่ IP และฉันต้องแทนที่ด้วย: my_domain.com

ฉันสามารถใช้sedหรือคำสั่งอื่น ๆ เพื่อเปลี่ยนจากบรรทัดคำสั่งปัญหาคือมีข้อมูลการกำหนดค่าจำนวนมากที่ใช้ JSON แล้วอะไรล่ะ อย่างที่คุณทราบอาร์เรย์ของ JSON ใช้สิ่งต่าง ๆ เช่น: s:4:เพื่อทราบจำนวนตัวอักษรที่องค์ประกอบมีและถ้าฉันเพิ่งแทนที่ IP ด้วยชื่อโดเมนไฟล์การกำหนดค่าจะเสียหาย

ฉันใช้แอพสำหรับ Windows เมื่อหลายปีก่อนที่อนุญาตให้เปลี่ยนค่าในฐานข้อมูลและดูแลอาร์เรย์ของ JSON น่าเสียดายที่ฉันลืมชื่อแอพ ... ดังนั้นคำถามคือคุณรู้จักแอพใดบ้างที่อนุญาตให้ฉันทำสิ่งที่ฉันต้องการ


1
นี่ไม่ใช่คำตอบที่สมบูรณ์ แต่อาจช่วยคุณในการค้นหาคำตอบ: ข้อมูลที่คุณกำลังดูไม่ได้จัดรูปแบบ JSON JSON ไม่ใช่ประเภทและความยาวของร้านค้าที่เป็นเช่นนั้น สิ่งที่คุณกำลังดูอยู่คือข้อมูลที่ถูกตัดออก การค้นหา google สำหรับ "mysql แทนที่ต่อเนื่อง" ให้หน้านี้ซึ่งอาจช่วย: davidcoveney.com/…
MathSmath

สวัสดีความคิดเห็นของคุณเป็นคำตอบเดียวที่มีประโยชน์สำหรับฉัน ... ย้ายไปยังคำตอบเพื่อทำเครื่องหมายว่าถูกต้อง ขอบคุณ!
Cristian

ดีใจที่มันช่วย! ฉันโพสต์ไว้เป็นคำตอบ
MathSmath

คำตอบ:


7

ข้อมูลที่คุณกำลังดูไม่ได้จัดรูปแบบ JSON JSON ไม่ใช่ประเภทและความยาวของร้านค้าที่เป็นเช่นนั้น สิ่งที่คุณกำลังดูอยู่คือข้อมูลที่ถูกตัดออก การค้นหา google สำหรับ "mysql แทนที่ต่อเนื่อง" ให้หน้านี้ซึ่งอาจช่วย: http://davidcoveney.com/mysql-database-search-replace-with-serialized-php/ http://davidcoveney.com/mysql


ขอบคุณ ... ฉันทำงานเป็นนักพัฒนา PHP เป็นเวลา 2 ปี ฉันไม่อยากจะเชื่อว่าฉันลืมความแตกต่างระหว่างสิ่งที่ต่อเนื่องและสตริง JSON
Cristian

8

Codex มีดีแนะนำ - เปลี่ยน URL ของเว็บไซต์

โดยทั่วไปมีหลายสถานที่ที่มีความสำคัญ URL หรือไม่มาก (ฉันอาจจะหายไปบางส่วน):

  • homeและsiteurlตัวเลือกที่ควบคุมตำแหน่งที่ WP คิดว่าเป็นไซต์
  • โพสต์ GUID ดูเหมือนลิงค์ แต่จริงๆแล้วมันไม่ใช่แค่ตัวระบุเท่านั้น ฉันไม่แน่ใจว่าพวกเขาจะไม่เกี่ยวข้องอย่างแน่นอน แต่ฉันมีการเปลี่ยนแปลง URL ในกองทดสอบมากและไม่เคยใส่ใจที่จะอัปเดตเหล่านี้
  • ลิงก์ในเนื้อความโพสต์
  • อาจเชื่อมโยงในการตั้งค่าปลั๊กอิน

มีไม่กี่ขั้นตอน หลังจากคุณmv olddir.com newdir.comจะต้องกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณใหม่ให้รีสตาร์ทเว็บเซิร์ฟเวอร์ ทำตามคำแนะนำ codex ที่นี่และจากนั้นคุณควรจะสามารถเข้าสู่ระบบในฐานะผู้ดูแลระบบ คุณน่าจะเริ่มได้ :-)
PJ Brunet

6

ดังที่ Rarst กล่าวไว้ข้างต้นมีเพียงสองการตั้งค่าในฐานข้อมูลที่จำเป็นต้องเปลี่ยน หลังจากนำเข้าฐานข้อมูลฉันเข้าสู่ PHPMyAdmin และแก้ไขฐานข้อมูลโดยตรง

ฉันใช้เซิร์ฟเวอร์การพัฒนาบนพีซีของฉันตลอดเวลาเพื่อนำเข้า datafeeds และพวกเขามี URL ที่แนบมากับกระทู้ตามบรรทัดของhttp: // localhost / testsite / post-name /และมันไม่เคยทำให้เกิดปัญหา

ฉันเคยใช้การค้นหา SQL และแทนที่จนกระทั่งฉันรู้ว่ามันไม่สำคัญ ฉันได้โยกย้ายบางเว็บไซต์จากโดเมนหนึ่งไปยังอีกและฉันมี URL ที่แน่นอนในเนื้อหาฉันจะใช้ตัวเลือกการค้นหาและแทนที่ SQL

update wp_posts set post_content = replace(post_content,'http://www.olddomain/','http://www.newdomain/');

เดวิด


มีปลั๊กอินบางอย่างเช่น ContactForm7 ซึ่งจะบันทึกชื่อโดเมนไว้ในสตริงที่ทำให้เป็นอนุกรมด้วยตัวแปรการกำหนดค่าอื่น ๆ เมื่อคุณแก้ไขสตริงที่ทำให้เป็นอนุกรมมันอาจเสียหายได้หากความยาวของมันเปลี่ยนไปดังนั้นในความเป็นจริงบางครั้งมีสิ่งที่เปลี่ยนแปลงมากกว่าการตั้งค่าสองอย่าง
Cristian

5

นี้เป็นทรัพยากรที่น่าตื่นตาตื่นใจฉันมีบุ๊คมาร์คที่ผมกลับไปอีกครั้งและเวลา http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you-knew -earlier /

พวกเขาระบุ

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';

3

wp-config.phpคุณสามารถตั้งค่าเหล่านี้ด้วยค่าคงที่ใน หลังจากนี้คุณสามารถเปลี่ยนรายการในฐานข้อมูลผ่านทางปลั๊กอินผู้ดูแลระบบเมื่อคุณต้องการ เขียนสิ่งนี้ในwp-config.phpและค่าในฐานข้อมูลไม่เกี่ยวข้อง:

define('WP_HOME', 'http://example.com/to-wordpress');
define('WP_SITEURL', 'http://example.com/to-blog');

2

ดูคำตอบของคำถามนี้:

มันแก้ปัญหาของคุณด้วยการล้างข้อมูลและสามารถปรับแต่งตามความต้องการในการย้ายข้อมูลโดยใช้ hooks ด้วย

หวังว่ามันจะช่วย


2

คำสั่ง SQL แบบง่าย - ไม่ต้องใช้สิ่งแทนที่ซับซ้อน:

update wp_options set option_value = 'http://mynewdomain.com' where option_name = 'siteurl';

update wp_options set option_value = 'http://mynewdomain.com' where option_name = 'home';

ใช้ผู้ที่มี PHPMyAdmin หรือวิธีอื่นที่คุณต้องการเข้าถึงฐานข้อมูล


2

ตรวจสอบให้แน่ใจว่าคุณได้เลือกฐานข้อมูลใหม่แล้วเรียกใช้การปรับปรุง sql และคำสั่งการแทนที่บนตารางโดยเฉพาะอย่างยิ่ง wp_options, wp_posts, wp_postmeta

ใช้รหัสด้านล่างและสลับใน URL เก่าและใหม่ของคุณไม่มีเครื่องหมายทับ นอกจากนี้หากจำเป็นให้เปลี่ยนค่านำหน้าของตารางที่เกี่ยวข้อง (เช่น wp_)

UPDATE wp_options SET option_value = replace(option_value, 'http_www.oldurl', 'http_www.newurl') WHERE option_name = 'home' OR option_name = 'siteurl';    
UPDATE wp_posts SET guid = replace(guid, 'http_www.oldurl','http_www.newurl');    
UPDATE wp_posts SET post_content = replace(post_content, 'http_www.oldurl', 'http_www.newurl');    
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http_www.oldurl','http_www.newurl');

1

นี่เป็นคำถามที่เก่ามาก แต่เมื่อฉันเจอมันในขณะที่มองหาอย่างอื่นฉันคิดว่าฉันจะเพิ่มสิ่งนี้เพื่อการอ้างอิงในอนาคต

ฉันคิดว่าวิธีที่ง่ายและสมบูรณ์ที่สุดในการทำเช่นนี้คือการใช้ searchreplacedb2.php สามารถพบได้ที่นี่: http://interconnectit.com/products/search-and-replace-for-wordpress-databases/พร้อมกับคำอธิบายการใช้งาน

มันช่วยให้ฉันประหยัดเวลาได้มากด้วยการย้ายจากสภาพแวดล้อม dev ไปสู่สภาพแวดล้อมจริงบนไซต์เวิร์ดเพรสของฉัน

เพียงให้แน่ใจว่าคุณลบออกจากเซิร์ฟเวอร์สาธารณะหลังจากที่คุณทำเสร็จแล้ว!


0

ฉันเห็นว่าคุณต้องการย้ายเว็บไซต์ WordPress ของคุณจากสภาพแวดล้อมการพัฒนาไปยังเซิร์ฟเวอร์ใหม่หรือเซิร์ฟเวอร์การผลิต

เมื่อเร็ว ๆ นี้ฉันได้ย้ายเว็บไซต์ของฉันไปยังเซิร์ฟเวอร์การผลิตและฉันเผชิญกับสถานการณ์เดียวกัน ฉันต้องการอัปเดต URL ของเว็บไซต์เนื่องจาก WordPress เก็บ URL ของไซต์ไว้ในฐานข้อมูล

ฉันพบการสืบค้น MySQL ที่ดีโดยใช้ที่ฉันสามารถเปลี่ยน URL ได้โดยตรงจากฐานข้อมูลเช่น

SET @search := "http://olddomain.com";
SET @replace := "http://newdomain.com";

UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "siteurl";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "home";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "product_list_url";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "shopping_cart_url";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "checkout_url";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "widget_text";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "headerImageLogo";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "cunjo_plugin_url";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "wpsr_socialbt_data";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "issuem";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "_transient_dgxdonate_t70pbg1htu_1396322372";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "dgx_donate_log";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "headerBackgroundImage";
UPDATE `wp_options` SET `option_value` = REPLACE(option_value, @search, @replace) WHERE option_name = "transact_url";
UPDATE `wp_postmeta` SET `meta_value`=REPLACE(meta_value, @search, @replace);
UPDATE `wp_usermeta` SET `meta_value`=REPLACE(meta_value, @search, @replace);
UPDATE `wp_posts` SET `guid`=REPLACE(guid, @search, @replace);
UPDATE `wp_posts` SET `post_content`=REPLACE(post_content, @search, @replace);

คุณเพียงแค่ต้องแทนที่ URL เว็บไซต์ของคุณจากชื่อโดเมนเก่าเป็นโดเมนใหม่จากนั้นดำเนินการค้นหาใน MySQL โดยใช้ PHPMYADMIN

สำหรับการอ้างอิงมากขึ้นคุณสามารถอ่านนี้กวดวิชา

https://tryvary.com/wordpress-change-url-in-database-using-mysql-query/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.