util/Database: MySQL connection parameters may all come from my.cnf
It doesn't make sense to override database, hostname or username parameters coming from ~/.my.cnf with arbitrary own defaults. Instead allow libmysqlclient to use the builtin default parameter mechanism. See <https://dev.mysql.com/doc/refman/5.1/en/option-files.html> for what a ~/.my.cnf may look like; example: [client] user=hsc password=secret42 database=fail_demo Change-Id: I90aadc04375c624d5e906557c8bd4049e5caa17c
This commit is contained in:
@ -17,7 +17,7 @@ Database::Database(const std::string &username, const std::string &host, const s
|
||||
log << "cannot connect to MySQL server: " << mysql_error(handle) << std::endl;
|
||||
exit(-1);
|
||||
}
|
||||
log << "opened MYSQL connection to " << username << "@" << host << "/" << database << std::endl;
|
||||
log << "opened MYSQL connection" << std::endl;
|
||||
}
|
||||
|
||||
MYSQL_RES* Database::query(char const *query, bool get_result)
|
||||
@ -109,11 +109,11 @@ void Database::cmdline_setup() {
|
||||
CommandLine &cmd = CommandLine::Inst();
|
||||
|
||||
DATABASE = cmd.addOption("d", "database", Arg::Required,
|
||||
"-d/--database\t MYSQL Database (default: fail_demo)");
|
||||
"-d/--database\t MYSQL Database (default: taken from ~/.my.cnf)");
|
||||
HOSTNAME = cmd.addOption("H", "hostname", Arg::Required,
|
||||
"-h/--hostname\t MYSQL Hostname (default: localhost)");
|
||||
"-h/--hostname\t MYSQL Hostname (default: taken from ~/.my.cnf)");
|
||||
USERNAME = cmd.addOption("u", "username", Arg::Required,
|
||||
"-u/--username\t MYSQL Username (default: fail)");
|
||||
"-u/--username\t MYSQL Username (default: taken from ~/.my.cnf, or your current user)");
|
||||
}
|
||||
|
||||
Database * Database::cmdline_connect() {
|
||||
@ -124,17 +124,17 @@ Database * Database::cmdline_connect() {
|
||||
if (cmd[USERNAME].count() > 0)
|
||||
username = std::string(cmd[USERNAME].first()->arg);
|
||||
else
|
||||
username = "fail";
|
||||
username = "";
|
||||
|
||||
if (cmd[HOSTNAME].count() > 0)
|
||||
hostname = std::string(cmd[HOSTNAME].first()->arg);
|
||||
else
|
||||
hostname = "localhost";
|
||||
hostname = "";
|
||||
|
||||
if (cmd[DATABASE].count() > 0)
|
||||
database = std::string(cmd[DATABASE].first()->arg);
|
||||
else
|
||||
database = "fail_demo";
|
||||
database = "";
|
||||
|
||||
return new Database(username, hostname, database);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user