DBI->connect("DBI:mysql:database=DATABASE_NAME", "USER_HERE@localhost", "USER_HERE_PW", If you actually mean really remote access you need this syntax: $port = 3306; $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port"; $dbh = DBI->connect($dsn, $user, $password); # more details on this (you could update the Host field from 'localhost' # to '%' and FLUSH PRIVILEGES to get it to take effect. mysql> use mysql Database changed mysql> show tables; +-----------------+ | Tables_in_mysql | +-----------------+ | columns_priv | | db | | func | | host | | tables_priv | | user | +-----------------+ 6 rows in set (0.00 sec) mysql> select * from user\G *************************** 1. row *************************** Host: localhost User: root Password: bipitybopityboo Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y [snip] max_questions: 0 max_updates: 0 max_connections: 0 *************************** 2. row *************************** Host: % User: remote_god Password: TheCanBeOnlyOne Select_priv: HeavenOrHell Insert_priv: Adam&Eve Update_priv: Birth Delete_priv: Death [snip] max_questions: Eternal max_updates: Last try failed max_connections: ?