MySQL'i localhost dışında herhangi bir şeye maruz bırakmak için aşağıdaki satıra sahip olmanız gerekir
Mysql 5.6 ve altı sürümler için
yorumlanmamış /etc/mysql/my.cnf
ve bilgisayarlarınıza atanmış IP adresi ve geri döngü değil
Mysql 5.7 ve üzeri sürümler için
yorumlanmamış /etc/mysql/mysql.conf.d/mysqld.cnf
ve bilgisayarlarınıza atanmış IP adresi ve geri döngü değil
bind-address = xxx.xxx.xxx.xxx
Veya bind-address = 0.0.0.0
IP'yi belirtmek istemiyorsanız bir ekleyin
Ardından, yeni my.cnf girişiyle MySQL'i durdurun ve yeniden başlatın. Çalıştırdıktan sonra terminale gidin ve aşağıdaki komutu girin.
lsof -i -P | grep :3306
Bu, xxx'lerdeki gerçek IP'nizle buna benzer bir şey geri gelmelidir
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Yukarıdaki ifade doğru bir şekilde dönerse, uzaktaki kullanıcıları kabul edebileceksiniz. Ancak uzaktaki bir kullanıcının doğru ayrıcalıklarla bağlanması için, o kullanıcının hem localhost hem de '%' içinde olduğu gibi oluşturulmuş olması gerekir.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
sonra,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
ve sonunda,
FLUSH PRIVILEGES;
EXIT;
Yukarıdaki ile aynı kullanıcı oluşturmadıysanız, yerel olarak oturum açtığınızda temel localhost ayrıcalıklarını devralabilir ve erişim sorunları yaşayabilirsiniz. Myuser'ın sahip olduğu erişimi kısıtlamak istiyorsanız, GRANT deyimi sözdizimini BURADAN okumalısınız. Tüm bunları aşarsanız ve hala sorun yaşıyorsanız, bazı ek hata çıktıları ve my.cnf uygun satırları gönderin.
NOT: lsof geri dönmezse veya bulunamazsa , Linux dağıtımınıza bağlı olarak BURADAN yükleyebilirsiniz . İşlerin yürümesi için lsof'a ihtiyacınız yok, ancak işler beklendiği gibi çalışmadığında son derece kullanışlıdır.