programing

Mysql MariaDB가 원격 연결에서 작동하지 않습니다.

bestprogram 2023. 10. 14. 10:22

Mysql MariaDB가 원격 연결에서 작동하지 않습니다.

하루 동안 머리를 긁적이며 아마도 너무 많은 기사를 읽었을 것이고 MariaDB가 원격 연결을 들을 수 있도록 하려면 어떻게 해야 할까요?유감스럽게도 아래 오류가 발생했습니다.

Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MariaDB server.

또한 이 StackOverflow 질문, 또 다른 질문을 읽었고 MySQL 쿼리를 사용하여 새 사용자를 생성하고 모든 권한을 부여할 수 있었습니다.

CREATE USER 'ahsensaeed'@'%' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON *.* TO 'ahsensaeed'@'%' WITH GRANT OPTION;

그리고 아래는 저의 ansheeed 사용자 허가서입니다.

MariaDB [mysql]> show grants for 'ahsensaeed'@'%';
+--------------------------------------------------------------------------------------------------------------------------------------+
| Grants for ahsensaeed@%                                                                                                              |
+--------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'ahsensaeed'@'%' IDENTIFIED BY PASSWORD '*F794ABE2A12665587C6B6D8B61E2F7E987711AFA' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

마지막에는 권한만 플러시하고 그 후에는 MariaDB 구성 파일로 이동하여 편집합니다.아래는 나의 MariaDB conf 파일이 놓여진 경로입니다.

/etc/mysql/mariadb.conf.d/50-server.cnf 

다음은 나의 MariaDB 파일 블록을 보여줍니다.

[mysqld]

#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
.....
.....

그런 다음 /etc/init.d/mysql restart를 통해 mysql 서비스를 다시 시작합니다.나는 또한 mysql을 위해 클라이언트의 3306 포트를 엽니다.

위의 솔루션이 작동하지 않을 때 bind-address = 0.0.0을 /etc/ mysql/conf.d/ mysql.cnf 파일에 추가하지만 오류로 실패했습니다.

서버에서 MariaDB 데이터베이스를 요청하는 방법은 다음과 같습니다.

-> mysql -uahsensaeed -p -h hostIp

그리고 저는 아래의 오류를 받았습니다.

오류 1130(HY000):호스트 'hostIp'은(는) 이 MariaDB 서버에 연결할 수 없습니다.

편집 호스트 및 사용자 데이터를 추가했습니다.

MariaDB [(none)]> select User,Host from mysql.user;
+------------+-----------+
| User       | Host      |
+------------+-----------+
| ahsensaeed | %         |
| root       | localhost |
+------------+-----------+
2 rows in set (0.00 sec)

어떤 도움이라도 주시면 감사하겠습니다.

이것은 저에게 효과가 있었습니다(Ubuntu 18.04를 가상 머신으로 사용하고 있고 Windows 10을 Vagrant와 함께 사용하고 있습니다).

sudo mysql -e "CREATE DATABASE {db_name};"
sudo mysql -e "CREATE USER {user_name}@localhost IDENTIFIED BY '{password}';"
sudo mysql -e "UPDATE mysql.user SET Host='%' WHERE User='{user_name}';"
sudo mysql -e "GRANT ALL PRIVILEGES ON {db_name}.* TO '{user_name}'@'%';"
sudo mysql -e "FLUSH PRIVILEGES;"
sudo systemctl restart apache2
sudo systemctl restart mariadb

그런 다음 파일을 편집해야 합니다.

/etc/mysql/mariadb.conf.d/50-server.cnf

호스트에 bind-address 속성 설정IP 주소 또는 이 줄에 댓글을 달기만 하면 됩니다.

마지막으로 명령을 실행합니다.

sudo systemctl restart apache2
sudo systemctl restart mariadb

이것이 당신의 요구에 적합하기를 바랍니다.

언급URL : https://stackoverflow.com/questions/54706507/mysql-mariadb-is-not-working-with-remote-connections