В моем Ubuntu /etc/mysql/my.conf
, У меня есть:
bind-address = 192.168.2.20 # My external IP
Он отлично работает удаленно, но когда я хочу подключиться локально, приложение, которое использует MySQL говорит: java.net.ConnectException: Connection refused at com.mysql.jdbc.StandardSocketFactory.connect
.
Поэтому, когда я хочу работать локально, я меняю my.cnf
кому:
bind-address = 0.0.0.0
И он начинает работать локально, но потом уже не работает удаленно.
Как сделать MySQL доступным как удаленно, так и локально?
Просто закомментируйте bind-address=
все вместе. Когда вы это сделаете, он будет привязан ко всем адресам. Также убедитесь, что у вас нет skip-networking
включен в вашем my.cnf.
Я ПРОСТО заставил его работать с помощью инструментов командной строки на сервере и удаленно через php. Наряду с проверкой того, что пропускная сеть была хэширована (и наш брандмауэр мусор), мне нужно было сделать следующее:
Попробуйте использовать инструмент командной строки на сервере, на котором размещена база данных (например, shell> mysql -h localhost -u root -p
затем введите пароль)
Запишите путь /, с которого он пытается подключиться (заканчивающийся на .sock)
Войти в my.cnf
и убедитесь в [client]
и [mysqld]
разделы, которые socket=
содержит путь, который вы нашли на шаге 2.