Решил задачу, рассказал об этом
Ниже приведу самое полное и правильное руководство, как настроить удаленный доступ c базе данных mysql на виртуальной машине битрикс (vm bitrix), которая находится на сервере Centos 7. Поэтому команды ниже буду приводить именно для этой операционной системы
Проделываем это на сервере, где лежит база данных
В файле конфигурации БД /etc/my.cnf в блоке [mysqld] прописываем строчку bind-address = 0.0.0.0
Здесь база данных будет слушать все ip адреса для удаленного подключения
Проверяем, если есть строка, содержащая skip-networking, закомментируйте ее, добавив # в начале строки.
Далее в термнале перезагружаем базу, чтобы изменения вступили в силу, командой service mysqld restart для Centos 7
Проверяем открыт или порт 3306 командой nmap -p 3306 xx.xx.xx.xx (,где xx.xx.xx.xx ip сервера на котором настраиваем базу)
Если не установлена команда nmap, установим yum install nmap
Это делаем также на сервере, где хостится ДБ
На виртуальной машине в файле /root/.my.cnf находится root доступ к базе данных mysql
Коннектимся в терминале linux к базе MySql командой mysql -uroot -p и вводим пароль рут
Создаем нового пользователя базы данных
create user 'bitrix1'@'yy.yy.y.yy' identified by 'password'; (, где yy.yy.y.yy - ip адрес сервера с которого будем подключаться)
и даем ему права- привелегии на использование нужной базы
grant all on dbname.* to 'bitrix1'@'yy.yy.y.yy';
Посмотреть все привелегии для этого пользователя можно командой show grants for 'bitrix1'@'yy.yy.y.yy';
Посмотреть всех пользователей в базе можно командой select user,host,authentication_string from mysql.user;
Выйти из базы можно командой exit;
В виртуальной машине битрикс изначально используется iptables в качестве брандмауэра, приведенная ниже команда разрешит доступ с любого IP-адреса в Интернете к порту MySQL.
Устанавливаем разрешение командой
iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT
Но это не безопасно, поэтому делаем команду с установкой конкретного ip с которого можно коннектится
iptables -I INPUT 1 -s yy.yy.y.yy -p tcp --dport 3306 -j ACCEPT
Обратите внимание на присутствие в строке цифры 1, это означает что это разрешение встанет в начало таблицы iptables в блоке Chain INPUT
Проверить наличие строки можно командой iptables -nL --line-numbers
Если строчка не вначале, удалите её командой iptables -D INPUT line, где line номер строки и выполните команду написанную выше
В терминале сервера с которого идет запрос к базе вводим команду mysql -u bitrix1 -h xx.xx.xx.xx -p и вводим пароль
Если все шаги выполнены правильно должно осуществится подключение к базе
Для этого в файлах /home/bitrix/www/bitrix.settings.php и /home/bitrix/www/bitrix/php_interface/dbconn.php в специальных блоках указать новые данные подключения к ДБ
$DBHost = "xx.xx.xx.xx";
$DBLogin = "bitrix1";
$DBPassword = "password";
$DBName = "dbname";
Эта ошибка может возникнуть в пункте 4 по тексту выше. Это означает что брендмауэр не пускает
Значит ввели неправильные доступы к удаленной базе
Попробуйте сменить пароль пользователя командой SET PASSWORD FOR 'bitrix1'@'yy.yy.y.yy' = 'NewPassword';
При использовании команды telnet xx.xx.xx.xx 3306, для проверки коннекта, может выскочить данная ошибка
Значит брендмауэр настроен не правильно
Для установки команды исполним в терминале yum install telnet