สมมติว่ามีเซิร์ฟเวอร์ระยะไกลและฉันมีไคลเอนต์ phpMyAdmin ติดตั้ง localy บนคอมพิวเตอร์ของฉัน ฉันจะเข้าถึงเซิร์ฟเวอร์นี้และจัดการผ่านไคลเอนต์ phpMyAdmin ได้อย่างไร? เป็นไปได้หรือไม่
สมมติว่ามีเซิร์ฟเวอร์ระยะไกลและฉันมีไคลเอนต์ phpMyAdmin ติดตั้ง localy บนคอมพิวเตอร์ของฉัน ฉันจะเข้าถึงเซิร์ฟเวอร์นี้และจัดการผ่านไคลเอนต์ phpMyAdmin ได้อย่างไร? เป็นไปได้หรือไม่
คำตอบ:
เพียงเพิ่มบรรทัดด้านล่างลง/etc/phpmyadmin/config.inc.php
ในไฟล์ของคุณที่ด้านล่าง:
$i++;
$cfg['Servers'][$i]['host'] = 'HostName:port'; //provide hostname and port if other than default
$cfg['Servers'][$i]['user'] = 'userName'; //user name for your remote server
$cfg['Servers'][$i]['password'] = 'Password'; //password
$cfg['Servers'][$i]['auth_type'] = 'config'; // keep it as config
. คุณจะได้รับ“ เซิร์ฟเวอร์ปัจจุบัน:” แบบเลื่อนลงพร้อมทั้ง“ 127.0.0.1” และอีกหนึ่งสิ่งที่คุณให้มาพร้อมกับ“ $ cfg ['เซิร์ฟเวอร์'] [$ i] ['โฮสต์']” สลับไปมาระหว่างเซิร์ฟเวอร์
รายละเอียดเพิ่มเติม: http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/
$i++
localhost
/etc/phpmyadmin/config.inc.php
เป็นไฟล์ที่ถูกต้องที่จะเปลี่ยน
config.inc.php
ไฟล์นั้นจะอยู่ที่ Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php
ไฟล์
สามารถทำได้ แต่คุณต้องเปลี่ยนการกำหนดค่า phpMyAdmin อ่านโพสต์นี้: http://www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin
หากลิงก์ตายไม่ว่าด้วยเหตุผลใดก็ตามคุณสามารถใช้ขั้นตอนต่อไปนี้:
config.inc.php
$cfg['Servers'][$i]['host']
ตัวแปรและตั้งค่าเป็น IP หรือชื่อโฮสต์ของเซิร์ฟเวอร์ระยะไกลของคุณ$cfg['Servers'][$i]['port']
ตัวแปรและตั้งค่าเป็นพอร์ต mysql ระยะไกล โดยปกติจะเป็น3306
$cfg['Servers'][$i]['user']
และ$cfg['Servers'][$i]['password']
ตัวแปรและการตั้งค่าเหล่านี้ไปยังชื่อผู้ใช้และรหัสผ่านสำหรับเซิร์ฟเวอร์ระยะไกลหากไม่มีการกำหนดค่าเซิร์ฟเวอร์ที่เหมาะสมการเชื่อมต่ออาจช้ากว่าการเชื่อมต่อภายในเครื่องอาจใช้ที่อยู่ IP แทนชื่อโฮสต์ได้เร็วกว่าเล็กน้อยเพื่อหลีกเลี่ยงไม่ให้เซิร์ฟเวอร์ต้องค้นหาที่อยู่ IP จากชื่อโฮสต์
นอกจากนี้โปรดจำไว้ว่าชื่อผู้ใช้และรหัสผ่านของฐานข้อมูลระยะไกลของคุณจะถูกเก็บไว้ในข้อความธรรมดาเมื่อคุณเชื่อมต่อเช่นนี้ดังนั้นคุณควรดำเนินการเพื่อให้แน่ใจว่าไม่มีใครสามารถเข้าถึงไฟล์กำหนดค่านี้ได้ หรือคุณสามารถปล่อยตัวแปรชื่อผู้ใช้และรหัสผ่านว่างไว้เพื่อให้ป้อนทุกครั้งที่เข้าสู่ระบบซึ่งปลอดภัยกว่ามาก
เป็นไปได้อย่างแน่นอนที่จะเข้าถึงเซิร์ฟเวอร์ MySQL ระยะไกลจากอินสแตนซ์ท้องถิ่นของ phpMyAdmin ตามที่คำตอบอื่น ๆ ได้ระบุไว้ และเพื่อให้ใช้งานได้คุณต้องกำหนดค่าเซิร์ฟเวอร์ MySQL ของเซิร์ฟเวอร์ระยะไกลเพื่อยอมรับการเชื่อมต่อระยะไกลและอนุญาตการรับส่งข้อมูลผ่านไฟร์วอลล์สำหรับหมายเลขพอร์ตที่ MySQL กำลังรับฟัง ฉันชอบการแก้ปัญหาที่แตกต่างกันเล็กน้อยที่เกี่ยวข้องกับSSH อุโมงค์
คำสั่งต่อไปนี้จะตั้งค่าอุโมงค์ SSH ซึ่งจะส่งต่อคำขอทั้งหมดที่ส่งไปยังพอร์ต 3307 จากเครื่องโลคัลของคุณไปยังพอร์ต 3306 บนเครื่องระยะไกล:
ssh -NL 3307:localhost:3306 root@REMOTE_HOST
เมื่อได้รับแจ้งคุณควรป้อนรหัสผ่านสำหรับผู้ใช้ root บนเครื่องระยะไกล เพื่อเปิดอุโมงค์ หากคุณต้องการเรียกใช้สิ่งนี้ในพื้นหลังคุณจะต้องเพิ่ม-f
อาร์กิวเมนต์และตั้งค่าSSH แบบไม่มีรหัสผ่านระหว่างเครื่องในระบบของคุณและเครื่องระยะไกล
หลังจากที่คุณได้ SSH tunnel ทำงานแล้วคุณสามารถเพิ่มเซิร์ฟเวอร์ระยะไกลไปยังรายการเซิร์ฟเวอร์ใน phpMyAdmin ในเครื่องของคุณได้โดยการแก้ไข/etc/phpmyadmin/config.inc.php
ไฟล์ เพิ่มสิ่งต่อไปนี้ที่ส่วนท้ายของไฟล์:
$cfg['Servers'][$i]['verbose'] = 'Remote Server 1';// Change this to whatever you like.
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '3307';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$i++;
ฉันเขียนบล็อกโพสต์เชิงลึกเกี่ยวกับเรื่องนี้ในกรณีที่คุณต้องการความช่วยเหลือเพิ่มเติม
$++
ควรเป็นบรรทัดแรกไม่ใช่สุดท้ายอย่างน้อยสำหรับ phpmyadmin.conf เริ่มต้นของฉัน
ติดตามบล็อกโพสต์นี้ คุณสามารถทำได้ง่ายมาก https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/
ไฟล์config.inc.phpมีการตั้งค่าคอนฟิกสำหรับการติดตั้ง phpMyAdmin ของคุณ ใช้อาร์เรย์เพื่อจัดเก็บชุดตัวเลือกการกำหนดค่าสำหรับทุกเซิร์ฟเวอร์ที่สามารถเชื่อมต่อได้และโดยค่าเริ่มต้นจะมีเพียงเครื่องเดียวคือเครื่องของคุณเองหรือ localhost ในการเชื่อมต่อกับเซิร์ฟเวอร์อื่นคุณจะต้องเพิ่มชุดตัวเลือกการกำหนดค่าอื่นในอาร์เรย์การกำหนดค่า คุณต้องแก้ไขไฟล์คอนฟิกูเรชันนี้
เปิดไฟล์config.inc.phpก่อนในโฟลเดอร์phpMyAdmin ในเซิร์ฟเวอร์wampคุณสามารถค้นหาได้ในโฟลเดอร์wamp \ apps \ phpmyadmin จากนั้นเพิ่มส่วนต่อไปนี้ลงในไฟล์นั้น
$i++;
$cfg['Servers'][$i]['host'] = 'hostname/Ip Adress';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'username';
$cfg['Servers'][$i]['password'] = 'password';
มาดูกันว่าความหมายของตัวแปรนี้คืออะไร
$i++ :- Incrementing variable for each server
$cfg[‘Servers’][$i][‘host’] :- Server host name or IP adress
$cfg[‘Servers’][$i][‘port’] :- MySQL port (Leave a blank for default port. Default MySQL port is 3306)
$cfg[‘Servers’][$i][‘socket’] :- Path to the socket (Leave a blank for default socket)
$cfg[‘Servers’][$i][‘connect_type’] :- How to connect to MySQL server (‘tcp’ or ‘socket’)
$cfg[‘Servers’][$i][‘extension’] :- php MySQL extension to use (‘mysql’ or ‘msqli’)
$cfg[‘Servers’][$i][‘compress’] :- Use compressed protocol for the MySQL connection (requires PHP >= 4.3.0)
$cfg[‘Servers’][$i][‘auth_type’] :- Method of Authentication
$cfg[‘Servers’][$i][‘username’] :- Username to the MySQL database in remote server
$cfg[‘Servers’][$i][‘password’] :- Password to the MySQL database int he remote server
หลังจากเพิ่มส่วนกำหนดค่านี้แล้วให้รีสตาร์ทเซิร์ฟเวอร์ของคุณและตอนนี้โฮมเพจ phpMyAdmin ของคุณจะเปลี่ยนไปและจะแสดงฟิลด์ให้เลือกเซิร์ฟเวอร์
ตอนนี้คุณสามารถเลือกเซิร์ฟเวอร์ของคุณและเข้าถึงฐานข้อมูลระยะไกลของคุณได้โดยป้อนชื่อผู้ใช้และรหัสผ่านสำหรับฐานข้อมูลนั้น
ตามที่ระบุไว้ในคำตอบc.hill answer หากคุณต้องการโซลูชันที่ปลอดภัยฉันขอแนะนำให้เปิดอุโมงค์ SSH ไปยังเซิร์ฟเวอร์ของคุณ
นี่คือวิธีการสำหรับผู้ใช้Windows :
ดาวน์โหลด Plink and Putty จากเว็บไซต์ Puttyและวางไฟล์ในโฟลเดอร์ที่คุณเลือก (ในตัวอย่างของฉันC:\Putty
)
เปิดคอนโซล Windows และซีดีไปยังโฟลเดอร์ Plink:
cd C:\Putty
เปิดอุโมงค์ SSH และเปลี่ยนเส้นทางไปยังพอร์ต 3307:
plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk
ที่ไหน:
ในที่สุดคุณก็สามารถตั้งค่า PhpMyAdmin:
เส้นที่จะเพิ่ม:
$i++;
$cfg['Servers'][$i]['verbose'] = 'Remote Dev server';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3307';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
http://127.0.0.1/phpmyadmin
หากคุณไม่ต้องการเปิดคอนโซลทุกครั้งที่คุณต้องเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลเพียงสร้างไฟล์แบตช์ (โดยบันทึก 2 บรรทัดคำสั่งในไฟล์. bat)
คุณสามารถตั้งค่าในไฟล์ config.inc.php ของการติดตั้ง phpMyAdmin ของคุณ
$cfg['Servers'][$i]['host'] = '';
ฉันจะเพิ่มสิ่งนี้เป็นความคิดเห็น แต่ชื่อเสียงของฉันยังไม่สูงพอ
ภายใต้เวอร์ชัน 4.5.4.1deb2ubuntu2 และฉันคาดเดาเวอร์ชันอื่น ๆ 4.5.x หรือใหม่กว่า ไม่จำเป็นต้องแก้ไขไฟล์ config.inc.php เลย ให้ไปที่ไดเรกทอรีเพิ่มอีกหนึ่งรายการแทน d.
สร้างไฟล์ใหม่ด้วยนามสกุล ".php" และเพิ่มบรรทัด นี่เป็นวิธีการแบบแยกส่วนที่ดีกว่าและแยกข้อมูลการเข้าถึงเซิร์ฟเวอร์ฐานข้อมูลระยะไกลแต่ละตัว
ไปที่ไฟล์ \ phpMyAdmin \ config.inc.php ที่ด้านล่างสุดเปลี่ยนรายละเอียดโฮสติ้งเช่นโฮสต์ชื่อผู้ใช้รหัสผ่านเป็นต้น
ใน Ubuntu
เพียงแค่คุณต้องแก้ไขไฟล์เดียวในโฟลเดอร์ PHPMyAdmin เช่น“ config.inc.php” เพียงเพิ่มบรรทัดด้านล่างใน“ config.inc.php” ของคุณ
ตำแหน่งไฟล์: /var/lib/phpmyadmin/config.inc.php
หรือ
/etc/phpmyadmin/config.inc.php
บางทีคุณอาจไม่มีสิทธิ์แก้ไขไฟล์นั้นเพียงแค่ให้สิทธิ์โดยใช้คำสั่งนี้
sudo chmod 777 /var/lib/phpmyadmin/config.inc.php
หรือ (ในระบบที่ต่างกันคุณอาจต้องตรวจสอบกับสถานที่ทั้งสองแห่งนี้)
sudo chmod 777 /etc/phpmyadmin/config.inc.php
จากนั้นคัดลอกและวางรหัสในconfig.inc.php
ไฟล์ของคุณ
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'Database Server 2';
$cfg['Servers'][$i]['host'] = '34.12.123.31';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
และทำการเปลี่ยนแปลงที่เหมาะสมกับรายละเอียดเซิร์ฟเวอร์ของคุณ
วิธีที่ 1 (สำหรับ multiserver)
ก่อนอื่นให้ทำการสำรองข้อมูลของ config ดั้งเดิม
sudo cp /etc/phpmyadmin/config.inc.php ~/
ตอนนี้ใน/ usr / share / doc / phpMyAdmin / ตัวอย่าง /คุณจะเห็นไฟล์config.manyhosts.inc.php เพียงแค่คัดลอกไปที่/ etc / phpmyadmin / โดยใช้คำสั่ง bellow:
sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
/etc/phpmyadmin/config.inc.php
แก้ไขconfig.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
ค้นหา :
$hosts = array (
"foo.example.com",
"bar.example.com",
"baz.example.com",
"quux.example.com",
);
และเพิ่ม IP หรืออาร์เรย์ชื่อโฮสต์ของคุณบันทึก (ใน nano CTRL + X กด Y) และออก เสร็จแล้ว
วิธีที่ 2 (เซิร์ฟเวอร์เดียว) แก้ไขconfig.inc.php
sudo nano /etc/phpmyadmin/config.inc.php
ค้นหา :
/* Server parameters */
if (empty($dbserver)) $dbserver = 'localhost';
$cfg['Servers'][$i]['host'] = $dbserver;
if (!empty($dbport) || $dbserver != 'localhost') {
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['port'] = $dbport;
}
และแทนที่ด้วย:
$cfg['Servers'][$i]['host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';
อย่าลืมแทนที่192.168.1.100 ด้วยเซิร์ฟเวอร์ mysql ip ของคุณเอง
ขออภัยสำหรับภาษาอังกฤษที่ไม่ดีของฉัน (Google แปลมีตำหนิ: D)
ค้นหาไฟล์libraries / config.default.php
จากนั้นหา $ cfg ['AllowArbitraryServer'] = false;
จากนั้นตั้งค่าเป็นจริง
บันทึก:
บนอูบุนตูไฟล์ในพา ธ/usr/share/phpmyadmin/libraries/config.default.php
จากนั้นคุณจะพบชื่อไฟล์ใหม่ SERVER ในหน้า PHPMyAdmin หลักคุณสามารถเพิ่ม IP หรือ localhost สำหรับฐานข้อมูลภายในเครื่องได้
ใน Windows ที่ติดตั้ง Wamp Server คุณอาจพบไฟล์การกำหนดค่า
C:\wamp64\apps\phpmyadmin4.8.4\config.inc.php
เปลี่ยนสายสลักตามความเหมาะสม
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = 3306;//$wampConf['mysqlPortUsed'];
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';
ลบรายการทั้งหมดของ /etc/http/conf.d/phpMyAdmin.conf
และด้านล่างเข้าสู่ไฟล์ด้านบน
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
#ADD following line:
Require all granted
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
#CHANGE following 2 lines:
Order Allow,Deny
Allow from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
จากนั้น
เรียกใช้คำสั่งด้านล่างในพรอมต์ MySQL
GRANT ALL ON *.* to root@localhost IDENTIFIED BY 'root@<password>'
GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root@<password>'
สำหรับการอ้างอิง: อนุญาตให้ IP เข้าถึง PhpMyAdmin ที่ปลอดภัย
phpmyadmin
อิมเมจนักเทียบท่าในเครื่องและเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ระยะไกลของคุณ รายละเอียดเพิ่มเติมได้ที่นี่ :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin