Подключение к MySQL в Bash (без установленного MySQL)


11

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

mysql -u _username_ -p

подключиться.

Я хотел бы иметь возможность печатать:

mysql -h _host_ -u _username_ -p

подключиться с другого сервера. У меня не установлен MySQL на клиенте, поэтому команда не найдена. Есть ли что-то, что я могу установить (предпочтительнее apt-get), кроме всего MySQL-сервера, чтобы я мог использовать команды mysql в bash?


1
apt-get install mysql-client Я думал, что это только для клиента с графическим интерфейсом.
user722307

Вы можете ответить на свой вопрос, и через некоторое время вы также можете принять его.
энзотиб

Ответы:


21

Чтобы установить клиент MySQL командной строки, вы должны сделать:

sudo apt-get install mysql-client

и тогда вы можете сделать

mysql -h HOST -P PORT_NUMBER -u USERNAME -p

Однако вам может потребоваться изменить настройки сервера MySQL. По умолчанию в Ubuntu сервер MySQL будет принимать соединения только с локального сервера. Настройка вызывается bind-addressи устанавливается в /etc/mysql/my.cnf. По умолчанию это так 127.0.0.1- вы должны изменить его на IP-адрес сервера. Если сервер имеет несколько IP-адресов, вы можете выбрать только один IP-адрес (скажем, для внутренней сети) или MySQL прослушивает все IP-адреса, задав значение0.0.0.0

Вам также необходимо убедиться, что пользователь MySQL может получить доступ к базе данных. Следуя инструкциям в Интернете, вы, возможно, создали пользователя 'myname'@'localhost'- этот пользователь не сможет подключиться удаленно. Чтобы создать нового пользователя, который сможет подключаться с IP-адреса вашего клиента, вам нужно сделать что-то вроде:

GRANT ALL PRIVILEGES ON database_name TO 'username'@'192.168.0.51' IDENTIFIED BY 'password';

Прочитайте немного больше об спецификации адреса, которую использует MySQL .

Наконец, не забудьте убедиться, что брандмауэр сервера разрешит доступ к порту MySQL - по умолчанию 3306.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.