MySQL sunucuda uzak erişime nasıl izin verilir?

MySQL sunucunuzu gayet güzel bir şekilde VPS üzerine kurdunuz ve bunu web sayfanız üzerinden localhost erişimi ile sorunsuzca idare ediyorsunuz. Fakat öyle oldu ki bu mysql veri tabanınıza farklı bir nokta üzerinden erişerek uygulamalar geliştirmeniz gerekti Module Art Panels.

Büyük bir iştahla kod yazmaya başladınız. Kullanıcı adı, şifre vs derken programı debug ettiniz ama o da ne MYSQL

HOST ‘88.225.110.12’ is not allowed to connect to this MySQL server

şeklinde bir hata verdi.

Doğal olarak ilk yapılacak işlem kullanıcı adı ile şifrenin kontrolüdür, ama onlar da doğru! E o zaman ne yapmamız lazım?

Aslında durum çok basit bir güvenlik tanımına dayanıyor. Bunun için de sunucunuza uzak masaüstü ile bağlanıp

C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -uroot -prootsifresinedir
mysql> use mysql
mysql>  grant all on *.* to mysqlkullaniciadi@'212.156.4.20' identified by 'mysqlkullanicisininsifresi';
mysql> flush privileges;

işte bu kadar.

Peki ama uzak masaüstü erişiminiz yoksa? o zaman da MYSQL sunucunuza Navicat benzeri bir yazılımla root olarak bağlandıktan sonra

CREATE USER 'mysqlkullaniciadi'@'<ipadresi>' IDENTIFIED BY '<şifresi>';

GRANT USAGE ON *.* TO 'mysqlkullaniciadi'@'<ipadresi>' WITH MAX_QUERIES_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'mysqlkullaniciadi'@'<ipadresi>';

komutu ile yeni mysql kullanıcınızı oluşturabilir, ona şifre ataması yapabilir ve bu kullanıcının yetkilendirilmiş olarak istenen IP adresi üzerinden bağlanmasını sağlayabilirsiniz.