• Monty's avatar
    Cleanup of MDEV-14974: --port ignored for --host=localhost · f272463b
    Monty authored
    The old code added to 10.6 was inconsisting in how TCP/IP and
    socket connection was chosen. One got also a confusing warning
    in some cases.
    
    Examples:
    > ../client/mysql --print-defaults
    ../client/mysql would have been started with the following arguments:
    --socket=/tmp/mariadbd.sock --port=3307 --no-auto-rehash
    > ../client/mysql
    ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mariadbd.sock' (2)
    > ../client/mysql --print-defaults
    ../client/mysql would have been started with the following arguments:
    --socket=/tmp/mariadbd.sock --port=3307 --no-auto-rehash
    > ../client/mysql --port=3333
    WARNING: Forcing protocol to  TCP  due to option specification. Please explicitly state intended protocol.
    ERROR 2002 (HY000): Can't connect to server on 'localhost' (111)
    > ../client/mysql --port=3333 --socket=sss
    ERROR 2002 (HY000): Can't connect to local server through socket 'sss' (2)
    > ../client/mysql --socket=sss --port=3333
    ERROR 2002 (HY000): Can't connect to local server through socket 'sss' (2)
    
    Some notable things:
    - One gets a warning if one uses just --port if config file sets socket
    - Using port and socket gives no warning
    - Using socket and then port still uses socket
    
    This patch changes things the following ways:
    If --port= is given on the command line, the the protocol is automatically
      changed to "TCP/IP".
    - If --socket= is given on the command line, the protocol is automatically
      changed to "socket".
    - The last option wins
    - No warning is given if protocol changes automatically.
    f272463b
cli_options_force_protocol_win.test 1.47 KB