Unable To Connect The Specified MySQL Hosts - mysql

I have an application that requires my users to connect to an online MySQL database through "remote access" from ANY IP address (the IP address from their own internet network) so that it confirms they are in the database prior to accessing the software.
I have tried to run command lines in my Linux terminal to allow ALL users to connect remotely from any ip address using the following command:
GRANT ALL ON database_name.* TO root#'%' IDENTIFIED BY 'user_password';
I have configured my MySQL database server configuration file to enable proper remote connection (I believe).
My "MySQL database server configuration file" located in /etc/mysql/mysql.conf.d/mysqld.cnf looks like the following below:
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[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
#require_secure_transport = on
#
# * Fine Tuning
#
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover-options = BACKUP
#max_connections = 100
#table_open_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#slow_query_log = 1
#slow_query_log_file = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
I have also tried to unblock the FireWall to enable tcp connection using the following command line:
sudo ufw allow 3306/tcp
My connection string from my desktop application looks like this:
MysqlConn.ConnectionString = "server=MyServerIPaddress;Port=3306;database=MyDatabaseName;Uid=root;Pwd=MyPassword;Connect Timeout=30;SslMode=none;"
My users still get the "Unable to connect to any of the specified mysql hosts." error message.
Any support is appreciated.

That's a giant point of an API; to expose some set of predefined functionality in a controlled manner without having to expose the soft underbelly of a site or system by dismantling the security.
https://www.dreamincode.net/forums/topic/263768-setting-up-a-php-web-service-to-be-consumed-by-vbnet/

Related

MySQL error 111 (Can't connect to MySQL server on 'x.x.x.x')

I have MySQL running on an Ubuntu 20.04 machine. I'm trying to connect to it with an external connection but am getting met with error 111 (Can't connect to MySQL server on 'x.x.x.x'). I know this is supposed to be a refusal, and I found other threads that say to comment (or change) the bind-address line in /etc/mysql/mysql.conf.d, however doing so made no difference for me. I don't know what I'm missing here. I have tried to make new users and try again but I don't think that will aid the issue seeing as its a straight up connection refusal.
Here is my full /etc/mysql/mysql.conf.d:
#
# The MySQL database server configuration file.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
datadir = /var/lib/mysql
# If MySQL is running as a replication slave, this should be
# changed. Ref https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir
# tmpdir = /tmp
#
# 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
#
# * Fine Tuning
#
key_buffer_size = 16M
# max_allowed_packet = 64M
# thread_stack = 256K
# thread_cache_size = -1
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover-options = BACKUP
# max_connections = 151
# table_open_cache = 4000
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
#
# Log all queries
# Be aware that this log type is a performance killer.
# general_log_file = /var/log/mysql/query.log
# general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
# slow_query_log = 1
# slow_query_log_file = /var/log/mysql/mysql-slow.log
# long_query_time = 2
# log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
# server-id = 1
# log_bin = /var/log/mysql/mysql-bin.log
# binlog_expire_logs_seconds = 2592000
max_binlog_size = 100M
# binlog_do_db = include_database_name
# binlog_ignore_db = include_database_name
As you can see, not only is bind-address commented out, but I also tried setting it to 0.0.0.0 before doing so. Is there anything else I can check? Any help is greatly appreciated.

MySql WorkBench 10060 error while connecting

I'm having problem with connecting to my mysql through mysql work bench. when i create the connection and click on test connection, after 1-2 minutes it says:
failed to connect to MySQL at xxx:3306 with user root.
Lost connection to MySql server at 'waiting for initial communcation packet', system error: 10060
and when i just click connect after minutes it crashes.
I'm running mysql database on a ubuntu 18 server. I have no other firewalls and I already disabled ufw with 'ufw disable' command.
I have also commented out the bind-address line in config file.
whole config file is as below:
# The MySQL database server configuration file.
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run
program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[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 = 127.0.0.1
#
# * Fine Tuning
#
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover-options = BACKUP
#max_connections = 100
#table_open_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#slow_query_log = 1
#slow_query_log_file = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
i have also granted all privileges on root as follow:
grant all privileges on *.* to 'root'#'%' identified by 'xxx';
and when i run netstat -plan| grep 3306 . i get this:
tcp6 0 0 :::3306 :::* LISTEN 27233 /mysqld
which means that the server is ready to listen from remote ip.
Give privilege to all users but it is not good practice.
GRANT ALL ON .* TO ''#'%' IDENTIFIED BY 'yourdbpassword';
FLUSH PRIVILEGES;
For more detail :
https://dev.mysql.com/doc/refman/8.0/en/grant.html

Max_packet_allowed automatically reset

Max_packet_allowed setting automatically resets to 1024(1M). I have set it to a higher value at global level. But its strange that sometimes during deployment of a war(not always) the value is reset to 1M. Also the value gets reset randomly. Even if there is a mysql server restart it shouldn't happen as it will copy the value from global level.
Here is the my.cnf config file content(ubuntu):
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
wait_timeout=115200
max_allowed_packet=500M
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 = 127.0.0.1
#skip-networking
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 50M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
max_connections = 250
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 16M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
[mysqldump]
quick
quote-names
max_allowed_packet = 100M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
max_allowed_packet = 160M
[isamchk]
key_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
There must be some piece of code changing the default value of max_allowed_packet.
You can try to log queries to identify which user or process is changing this value.
As a workaround you can try to set 'Super' privilege only for admin user to prevent others from changing max_allowed_packet.
I found that if your mysql server available for remote connections from any hosts (root#%), someone trys to hack your system.
There some information about that :
1) max_allowed_packet automatically changes to 1024.
2) The new users they are adding to your system. The user names are : "mysqld" and "server". There no default users at MySql.
3) Also they are adding new tables on "mysql" database.
4) If your internet connection is not very fast, your internet connection runs slow when they are dumping your database remotely.
I suggest :
Change your root password. (Dont use simple passwords)
If possible disallow remote connections to your Mysql.
Dont use default port. (3306) Use another port for Mysql.

Automatically deleted MySQL database table when restart server

I installed LAMP server on my Ubuntu 12.04 Server PC. I changed the database storage location using my.cnf. After I changed the location it's working fine. But if I restart my MySQL database is deleted and my database shows empty. I don't know why it happened, after I imported the dumb data to my previously created database, it shows the following error:
CREATE TABLE IF NOT EXISTS `admin` (
`usna` VARCHAR( 100 ) NOT NULL ,
`pas` VARCHAR( 100 ) NOT NULL
) ENGINE = INNODB DEFAULT CHARSET = latin1;
MySQL said: Documentation
#1146 - Table 'admin_db.admin' doesn't exist
...but if create a new database and after that I import the data again, it will work fine. Is my my.cnf file wrong? Please tell me how to fix this.
My.cnf file
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /media/sdc1/Mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
default-storage-engine=InnoDB
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 = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /media/sdc1/Mysql
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
key_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
My secondary database dir list
/media/sdc1/Mysql/mysql
/media/sdc1/Mysql/new
/media/sdc1/Mysql/performance_schema
/media/sdc1/Mysql/phpmyadmin
/media/sdc1/Mysql/test
/media/sdc1/Mysql/_testtmj
/media/sdc1/Mysql/columns_priv.frm
/media/sdc1/Mysql/columns_priv.MYD
/media/sdc1/Mysql/columns_priv.MYI
/media/sdc1/Mysql/db.frm
/media/sdc1/Mysql/db.MYD
/media/sdc1/Mysql/db.MYI
/media/sdc1/Mysql/debian-5.5.flag
/media/sdc1/Mysql/event.frm
/media/sdc1/Mysql/event.MYD
/media/sdc1/Mysql/event.MYI
/media/sdc1/Mysql/func.frm
/media/sdc1/Mysql/func.MYD
/media/sdc1/Mysql/func.MYI
/media/sdc1/Mysql/general_log.CSM
/media/sdc1/Mysql/general_log.CSV
/media/sdc1/Mysql/general_log.frm
/media/sdc1/Mysql/help_category.frm
/media/sdc1/Mysql/help_category.MYD
/media/sdc1/Mysql/help_category.MYI
/media/sdc1/Mysql/help_keyword.frm
/media/sdc1/Mysql/help_keyword.MYD
/media/sdc1/Mysql/help_keyword.MYI
/media/sdc1/Mysql/help_relation.frm
/media/sdc1/Mysql/help_relation.MYD
/media/sdc1/Mysql/help_relation.MYI
/media/sdc1/Mysql/help_topic.frm
/media/sdc1/Mysql/help_topic.MYD
/media/sdc1/Mysql/help_topic.MYI
/media/sdc1/Mysql/host.frm
/media/sdc1/Mysql/host.MYD
/media/sdc1/Mysql/host.MYI
/media/sdc1/Mysql/ibdata
/media/sdc1/Mysql/ibdata1
/media/sdc1/Mysql/ib_logfile0
/media/sdc1/Mysql/ib_logfile1
/media/sdc1/Mysql/mysql_upgrade_info
/media/sdc1/Mysql/ndb_binlog_index.frm
/media/sdc1/Mysql/ndb_binlog_index.MYD
/media/sdc1/Mysql/ndb_binlog_index.MYI
/media/sdc1/Mysql/plugin.frm
/media/sdc1/Mysql/plugin.MYD
/media/sdc1/Mysql/plugin.MYI
/media/sdc1/Mysql/proc.frm
/media/sdc1/Mysql/proc.MYD
/media/sdc1/Mysql/proc.MYI
/media/sdc1/Mysql/procs_priv.frm
/media/sdc1/Mysql/procs_priv.MYD
/media/sdc1/Mysql/procs_priv.MYI
/media/sdc1/Mysql/proxies_priv.frm
/media/sdc1/Mysql/proxies_priv.MYD
/media/sdc1/Mysql/proxies_priv.MYI
/media/sdc1/Mysql/SERVER.err
/media/sdc1/Mysql/SERVER.pid
/media/sdc1/Mysql/servers.frm
/media/sdc1/Mysql/servers.MYD
/media/sdc1/Mysql/servers.MYI
/media/sdc1/Mysql/slow_log.CSM
/media/sdc1/Mysql/slow_log.CSV
/media/sdc1/Mysql/slow_log.frm
/media/sdc1/Mysql/tables_priv.frm
/media/sdc1/Mysql/tables_priv.MYD
/media/sdc1/Mysql/tables_priv.MYI
/media/sdc1/Mysql/time_zone.frm
/media/sdc1/Mysql/time_zone.MYD
/media/sdc1/Mysql/time_zone.MYI
/media/sdc1/Mysql/time_zone_leap_second.frm
/media/sdc1/Mysql/time_zone_leap_second.MYD
/media/sdc1/Mysql/time_zone_leap_second.MYI
/media/sdc1/Mysql/time_zone_name.frm
/media/sdc1/Mysql/time_zone_name.MYD
/media/sdc1/Mysql/time_zone_name.MYI
/media/sdc1/Mysql/time_zone_transition.frm
/media/sdc1/Mysql/time_zone_transition.MYD
/media/sdc1/Mysql/time_zone_transition.MYI
/media/sdc1/Mysql/time_zone_transition_type.frm
/media/sdc1/Mysql/time_zone_transition_type.MYD
/media/sdc1/Mysql/time_zone_transition_type.MYI
/media/sdc1/Mysql/user.frm
/media/sdc1/Mysql/user.MYD
/media/sdc1/Mysql/user.MYI
You may need to change the default values for innodb_data_home_dir or innodb_data_file_path.
Check the output of SELECT ##innodb_data_home_dir, ##innodb_data_file_path and change them if required (if innodb_data_home_dir is NULL, then it defaults to datadir).

Can't connect to MySQL client outside of localhost

For some reason I am unable to connect to my mysql database outside of the server. The PHP applications running on the server are able to connect through localhost, but not my mysql client on my home computer. Below is my config. can you tell me what i'm doing wrong?
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[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
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
key_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
There are two main things to check:
Is there a firewall inbetween blocking the connection? From your client you can try telnet myServerName 3306 to see if you can connect. See http://dev.mysql.com/doc/refman/5.5/en/can-not-connect-to-server.html
Is the user you are trying to connect with allowed to connect from your host? For more on this refer to the MySQL docs at http://dev.mysql.com/doc/refman/5.1/en/create-user.html and http://dev.mysql.com/doc/refman/5.1/en/account-names.html, specifically Syntax for account names is 'user_name'#'host_name'. If you want to be able to connect with a given account from any computer, the account name would follow a syntax like 'user_name'#'%', where % is a wildcard matching any host name.