Доступ к удаленной базе данных mysql из командной строки

У меня есть сервер с Rackspace. Я хочу получить доступ к базе данных из моей локальной командной строки.

Я пробовал:

mysql -u username -h my.application.com -ppassword

Но это дает ошибку:

ОШИБКА 2003 (HY000):

Невозможно подключиться к серверу MySQL на 'my.application.com' (10061)

Что вызывает эту ошибку и как я могу подключиться к удаленной базе данных?

Ответ 1

Чтобы напрямую войти в удаленную консоль mysql, используйте следующую команду:

mysql -u {username} -p {password} \
    -h {remote server ip or name} -P {port} \
    -D {DB name}

Это приведет вас к консоли MySQL напрямую, переключившись на указанную базу данных.

Ответ 2

изменить файл my.cnf:

vi /etc/my.cnf:

убедитесь, что:

bind-address=YOUR-SERVER-IP

и если у вас есть строка:

skip-networking

обязательно прокомментируйте это:

#skip-networking

не забудьте перезапустить:

/etc/init.d/mysqld restart

Ответ 3

просто поместите это на терминал в ubuntu:

mysql -u username -h host -p

Теперь нажмите enter

Терминал

запросит у вас пароль, введите пароль, и вы попадете в сервер базы данных

Ответ 4

Попробуйте выполнить эту команду mysql -uuser -hhostname -PPORT -ppassword.

Я столкнулся с подобной ситуацией, а позже, когда для этой команды был добавлен порт mysql для хоста, он был решен.

Ответ 5

Для Mac используйте следующую команду:

mysql -u app -h hostaddress -P port -D dbname -p

и затем введите пароль, когда будет предложено.

Ответ 6

Если вы не хотите использовать ssh tunnel, в my.cnf или mysqld.cnf вы должны изменить 127.0.0.1 с вашим локальным IP-адресом (192.168.1.100), чтобы иметь доступ через Lan. пример ниже:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Ищите bind-адрес в my.cnf или mysqld.cnf

bind-address            =  127.0.0.1

и измените 127.0.0.1 на 192.168.1.100 (локальный IP-адрес)

bind-address            =  192.168.1.100

Чтобы применить сделанные изменения, необходимо перезапустить сервер MySQL, используя следующую команду.

sudo /etc/init.d/mysql restart

Измените пользовательский корень для локальных сетей (выполните запрос ниже на удаленном сервере, к которому вы хотите иметь доступ)

[email protected]:~$ mysql -u root -p

..

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Если вы хотите иметь доступ только с определенного IP-адреса, замените 'root' @'%' на 'root' @'(ip address или hostname)'

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Затем вы можете подключиться:

[email protected]:~$ mysql -h 192.168.1.100 -u root -p

протестировано на сервере Ubuntu 18.04

Ответ 7

  • попробуйте telnet 3306. Если он не открывает соединение, либо существует настройка брандмауэра, либо сервер не прослушивает (или не работает).
  • запустите netstat -an на сервере, чтобы узнать, завершен ли сервер.
  • Возможно, вы не разрешаете удаленные подключения.

    См. http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

Ответ 8

Я предполагаю, что на вашем компьютере установлена ​​MySQL. Выполните следующую команду после заполнения отсутствующих данных:

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 

Ответ 9

Необходимо проверить, заблокирован ли входящий доступ к порту 3306 брандмауэром.

Ответ 10

Вы должны поместить свой пароль с помощью "p"

mysql -u root -u 1.1.1.1 -p'MyPass'

Ответ 11

это решение работало для меня:

На вашем удаленном компьютере (пример: 295.13.12.53) есть доступ к вашей целевой удаленной машине (на которой запущен сервер mysql)

ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 [email protected]

Разъяснения:

ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port [email protected]_ip_address -N

your_ssh_mashine_ipaddress - это не локальный IP-адрес, это IP-адрес что вы ssh к, в этом примере 295.13.12.53

your_ssh_mashine_local_port - это настраиваемый порт не 22, в этом примере это 3306.

target_ipaddress - ip машины, которую вы пытаетесь сбрасывать DB.

target_port - 3306 это настоящий порт для сервера MySQL.

user @your_ip_address - это учетные данные ssh для машины ssh, которую вы подключаете

Как только все это будет сделано, вернитесь к своей машине и выполните следующее:

mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql

Спросит пароль, поместит ваш пароль, и вы подключитесь. Надеюсь, это поможет.

Ответ 12

Я тоже получал ту же ошибку. Но оказалось, что это полезно, создав нового пользователя mysql на удаленном сервере mysql, а затем подключитесь. Выполните следующую команду на удаленном сервере:

CREATE USER 'openvani'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'localhost WITH GRANT 
OPTION;
CREATE USER 'openvani'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Теперь вы можете подключиться к удаленному mysql с помощью следующей команды.

mysql -u openvani -h 'any ip address'-p

Вот полный пост:

http://openvani.com/blog/connect-remotely-mysql-server/

Ответ 13

Попробуйте это, это работает:

mysql -h {имя хоста} -u {имя пользователя} -p {пароль} -N -e "{запрос на выполнение}"

Ответ 14

Серверы mysql обычно настроены на прослушивание только localhost (127.0.0.1), где они используются веб-приложениями.

Если это ваш случай, но у вас есть SSH-доступ к вашему серверу, вы можете создать ssh-туннель и подключиться через него.

На вашем локальном компьютере создайте туннель.

ssh -L 3307:127.0.0.1:3306 -N [email protected]$remote_host

(в этом примере используется локальный порт 3307, в случае, если у вас также запущен mysql на локальном компьютере и используется стандартный порт 3306)

Теперь вы должны быть Элем, чтобы связаться с

mysql -u $user -p -h 127.0.0.1 -P 3307