0

I'm running Ubuntu 12 with MySql installed.

Here's MySql configuration 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     = /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       =95.133.113.224
#
# * 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/

I find that it would be easier to set up the system if I can connect to it from the outside.

I've tried several things, but MySql Administrator simply won't connect to it from my pc.

What changes should I make to the file to make mysql connectable?

1
  • Don't expose it to the "outside", if by "outside" you mean "internet". Exhibit A. Jun 14, 2012 at 4:42

2 Answers 2

1

Uncomment bind-address option and check that this is really your address.

PS: It's better to upgrade mysql if possible, versions older than 2 month (? i suppose) on many systems can give access to the user with incorrect password.

2
  • or better 0.0.0.0. The security warnings still apply :) BTW re-upvoted it because i hate people downvoting advice that might be dangerous BUT answers the question AND comes with an appropriate warning. Jun 13, 2012 at 23:44
  • Thanks. As for security warnings I now know the answer why for five years I was refusing to give anyone remote access to MySQL through untrusted networks. Even now all my setups utilize IPsec or VPN to completely shield any MySQL server from inbound connections from unknown sources. However you can always meet a client that wants just clean direct connection and nothing else...
    – kworr
    Jun 14, 2012 at 4:18
1

It's usually a pretty bad idea to make your database available to any non-local network (aka the Internet), especially if you don't know what you are doing.

A better solution for MySQL Administrator access is to use SSH port forwarding, which is supported out of the box in recent versions of the app.

For this to work, you would modify your config file to this:

bind-address = 127.0.0.1

and then configure MySQL Admin to use SSH to connect to the database.

This has the advantage that you can still use access your database over the network, but only via the much more secure path over SSH.

2
  • Mysql listens on local address by default. He shouldn't change anything if he needs Mysql to bind to local address.
    – kworr
    Jun 14, 2012 at 4:15
  • Can you please add some example of connecting to mysql via ssh?
    – s3m3n
    May 8, 2014 at 17:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .