Ответы:
Просто добавьте следующие строки в ваш /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 ['Servers'] [$ i] ['host']» между серверами.
подробнее: 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
file.
Конечно, можно получить доступ к удаленному серверу MySQL из локального экземпляра phpMyAdmin, как указывали другие ответы. И чтобы это работало, вам необходимо настроить сервер MySQL удаленного сервера на прием удаленных подключений и разрешить трафик через брандмауэр для номера порта, который прослушивает MySQL. Я предпочитаю немного другое решение с использованием SSH-туннелирования .
Следующая команда настроит SSH-туннель, который будет перенаправлять все запросы, сделанные на порт 3307 с вашего локального компьютера, на порт 3306 на удаленном компьютере:
ssh -NL 3307:localhost:3306 root@REMOTE_HOST
При появлении запроса вы должны ввести пароль для пользователя root на удаленном компьютере. Это откроет туннель. Если вы хотите запустить это в фоновом режиме, вам нужно добавить -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 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).
Я бы добавил это как комментарий, но моя репутация пока недостаточно высока.
Под версией 4.5.4.1deb2ubuntu2, и я предполагаю любые другие версии 4.5.x или новее Нет необходимости изменять файл config.inc.php вообще. Вместо этого перейдите еще на один каталог вниз по conf.d.
Создайте новый файл с расширением .php и добавьте строки. Это лучший модульный подход, который изолирует информацию о каждом удаленном сервере базы данных.
В убунту
Просто вам нужно изменить один файл в папке 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 / examples / вы увидите файл 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';
Не забудьте заменить 192.168.1.100 вашим собственным IP-сервером mysql.
Извините за мой плохой английский (гугл переводчик виноват: D)
Как я тестирую, он находит файл config.default.php
затем найдите $ cfg ['AllowArbitraryServer'] = false;
затем установите для него значение true
примечание: в Ubuntu файл находится по пути /usr/share/phpmyadmin/libraries/config.default.php
затем вы найдете новое поле SERVER на главной странице PHPMyAdmin, вы можете добавить к нему любой IP или локальный хост для локальной базы данных.
В 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>'
Для справки: разрешить 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