Відповіді:
Просто додайте нижче рядки до вашого /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
файлі.
Звичайно, можна отримати доступ до віддаленого сервера MySQL з локального примірника phpMyAdmin, як вказували інші відповіді. А щоб це працювало, вам потрібно налаштувати MySQL-сервер віддаленого сервера, щоб він міг приймати віддалені з'єднання та дозволити трафік через брандмауер для номера порту, який слухає MySQL. Я вважаю за краще дещо інше рішення, що стосується тунелювання SSH .
Наступна команда встановить тунель SSH, який буде пересилати всі запити, зроблені до порту 3307 з вашого локального апарату, до порту 3306 на віддаленій машині:
ssh -NL 3307:localhost:3306 root@REMOTE_HOST
Коли з’явиться запит, вам слід ввести пароль кореневого користувача на віддаленій машині. Це відкриє тунель. Якщо ви хочете запустити це у фоновому режимі, вам потрібно буде додати -f
аргумент та встановити SSH без пароля між локальною машиною та віддаленою машиною.
Після того, як тунель SSH запрацює, ви можете додати віддалений сервер до списку серверів у вашому локальному 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.
Це можна зробити, але вам потрібно змінити конфігурацію 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-адресу від імені хоста.
Крім того, пам’ятайте, що ім'я користувача та пароль вашої віддаленої бази даних зберігаються у простому тексті при такому підключенні, тому слід вжити заходів для того, щоб ніхто не мав доступу до цього конфігураційного файла. Крім того, ви можете залишити змінні імені користувача та пароля порожніми, щоб запропонувати вводити їх під час кожного входу, що набагато безпечніше.
Дотримуйтесь цієї публікації в блозі. Ви можете зробити це дуже легко. 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 відповідь, якщо ви хочете отримати безпечне рішення, я б порадив відкрити тунель SSH до вашого сервера.
Ось як це зробити для користувачів Windows :
Завантажте Plink і 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).
Я б додав це як коментар, але моя репутація ще недостатньо висока.
Під версією 4.5.4.1deb2ubuntu2, і я здогадуюсь будь-які інші версії 4.5.x або новіші. Тут взагалі не потрібно змінювати файл config.inc.php. Замість цього зайдіть ще один каталог вниз conf.d.
Створіть новий файл із розширенням '.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 (для мультисервера)
Спочатку давайте зробимо резервну копію оригінального конфігурації.
sudo cp /etc/phpmyadmin/config.inc.php ~/
Тепер у / usr / share / doc / phpmyadmin / example / ви побачите файл config.manyhosts.inc.php . Просто скопіюйте в / etc / phpmyadmin / за допомогою команди нижче:
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';
Remeber замінить 192.168.1.100 на власному сервері mysql ip.
Вибачте за мою погану англійську (переклади google винні: D)
Як я тестую, він знаходить файл config.default.php
потім знайдіть $ cfg ['AllowArbitraryServer'] = false;
потім встановіть його на істинне
Примітка: на ubuntu файл у шляху /usr/share/phpmyadmin/libraries/config.default.php
тоді ви знайдете нове подане ім’я SERVER на головній сторінці PHPMyAdmin, ви можете додати до нього будь-який IP або localhost для локальної бази даних.
У Windows із встановленим сервером Wamp ви можете знайти файл конфігурації
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>'
phpmyadmin
зображення докера локально та підключитися до віддаленого сервера MySQL. Більше інформації тут :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin