Portable MySQL setup

  1. the MySQL is just the original MySQL in binary package format
  2. initial data folder
    ./scripts/mysql_install_db
  3. give data folder permission
     sudo chown -R mysql data/
  4. start demon
    sudo ./bin/mysqld_safe --defaults-file=./etc/my.cnf  -h 127.0.0.1
    1. or try
      ./bin/mysql_upgrade --defaults-file=./etc/my.cnf  -h 127.0.0.1 -u root -p
  5. test
    mysql --defaults-file=./etc/my.cnf -h 127.0.0.1 dbName
  6. initial password
    mysqladmin -u root password MyPass
  7. stop server
    mysqladmin --defaults-file=./etc/my.cnf -h 127.0.0.1 -u root -p shutdown
  8. note: .frm file is the database file

config files

  • ./etc/my.cnf
    # Example MySQL config file for small systems.
    #
    # This is for a system with little memory (<= 64M) where MySQL is only used
    # from time to time and it's important that the mysqld daemon
    # doesn't use much resources.
    #
    # You can copy this file to
    # /etc/my.cnf to set global options,
    # mysql-data-dir/my.cnf to set server-specific options (in this
    # installation this directory is /usr/local/mysql/data) or
    # ~/.my.cnf to set user-specific options.
    #
    # In this file, you can use all long options that a program supports.
    # If you want to know which options a program supports, run the program
    # with the "--help" option.
    
    # The following options will be passed to all MySQL clients
    [client]
    #password	= your_password
    port		= 3306
    socket		= '/Volumes/Paris/.shios/tmp/mysql.sock'
    
    # Here follows entries for some specific programs
    
    # The MySQL server
    [mysqld]
    port		= 3306
    socket		= '/Volumes/Paris/.shios/tmp/mysql.sock'
    #--shi
    skip-networking
    skip-innodb
    datadir='/Volumes/Paris/.shios/data'
    #--end
    skip-locking
    key_buffer_size = 16K
    max_allowed_packet = 1M
    table_open_cache = 4
    sort_buffer_size = 64K
    read_buffer_size = 256K
    read_rnd_buffer_size = 256K
    net_buffer_length = 2K
    thread_stack = 128K
    
    [mysql.server]
    user=mysql
    basedir='/Volumes/Paris/.shios/mysql-5.1.40-osx10.4-i686'
    
    # Don't listen on a TCP/IP port at all. This can be a security enhancement,
    # if all processes that need to connect to mysqld run on the same host.
    # All interaction with mysqld must be made via Unix sockets or named pipes.
    # Note that using this option without enabling named pipes on Windows
    # (using the "enable-named-pipe" option) will render mysqld useless!
    # 
    #skip-networking
    server-id	= 1
    
    # Uncomment the following if you want to log updates
    #log-bin=mysql-bin
    
    # binary logging format - mixed recommended
    #binlog_format=mixed
    
    # Uncomment the following if you are using InnoDB tables
    #innodb_data_home_dir = /usr/local/mysql/data/
    #innodb_data_file_path = ibdata1:10M:autoextend
    #innodb_log_group_home_dir = /usr/local/mysql/data/
    # You can set .._buffer_pool_size up to 50 - 80 %
    # of RAM but beware of setting memory usage too high
    #innodb_buffer_pool_size = 16M
    #innodb_additional_mem_pool_size = 2M
    # Set .._log_file_size to 25 % of buffer pool size
    #innodb_log_file_size = 5M
    #innodb_log_buffer_size = 8M
    #innodb_flush_log_at_trx_commit = 1
    #innodb_lock_wait_timeout = 50
    
    [mysqldump]
    quick
    max_allowed_packet = 16M
    
    [mysql]
    no-auto-rehash
    # Remove the next comment character if you are not familiar with SQL
    #safe-updates
    
    [myisamchk]
    key_buffer_size = 8M
    sort_buffer_size = 8M
    
    [mysqlhotcopy]
    interactive-timeout

Tools and Software