Jawaban ini telah diedit beberapa kali berdasarkan info baru yang diberikan oleh OP
Apakah root sebenarnya diizinkan untuk terhubung ke server dari host yang Anda hubungkan? Jika string kesalahan mengembalikan nama kanonik server, kemungkinan besar 'localhost' tidak menunjuk ke 127.0.0.1 :
Itu seharusnya menggemakan sesuatu seperti "Akses ditolak untuk pengguna 'root'@localhost'", bukan nama server.
Coba:
$con = mysql_connect("127.0.0.1","root","pass");
Sunting (Setelah informasi lebih lanjut diberikan dalam komentar)
Jika Anda terhubung dari host yang sama sekali berbeda, Anda harus memberi tahu MySQL [email protected]_hostname_or_ip
diizinkan untuk terhubung, dan memiliki hak istimewa yang sesuai untuk membuat database dan pengguna.
Anda dapat melakukannya dengan lebih mudah menggunakan phpmyadmin (di server MySQL), atau kueri seperti:
CREATE USER 'root'@'192.168.1.1' IDENTIFIED BY PASSWORD 'secret';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.1' IDENTIFIED BY PASSWORD 'secret' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Saya akan menyarankan untuk tidak menamai pengguna ini 'root' , cukup buat pengguna dengan semua hak global yang diperlukan. Dalam contoh, saya menggunakan 192.168.1.1, yang dapat dengan mudah menjadi nama host, pastikan DNS diatur dengan benar. Tentukan host yang cocok tepatnya seperti yang muncul di log saat Anda terhubung ke server jauh.
Anda mungkin juga ingin menyesuaikan batas selera. Informasi lebih lanjut tentang CREATE USER
sintaks dapat ditemukan di sini
, GRANT
di sini
.
Sunting
Jika menggunakan MySQL 4 - CREATE bukanlah pilihan. Anda cukup menggunakan GRANT (4.1 Dokumen Tentang Manajemen Pengguna )
Sunting
Jika menggunakan C-Panel, cukup gunakan API . Meskipun ya, itu memang memiliki keunikannya sendiri, lebih mudah untuk mempertahankan hal-hal yang menggunakannya daripada pekerjaan ad-hoc. Banyak aplikasi yang berhasil menggunakannya tanpa masalah. Seperti API lainnya, Anda harus selalu mengetahui perubahan saat menggunakannya.