Jump to content

Your Linux Guides are Extremely Confusing and Frustrating


Recommended Posts

I have been trying for 2 days to get ESMC going on Ubuntu 16. I am constantly running into issues. I get a few steps ahead and then run into an error, then have to spend hours researching it.

For example, on the step: 

1.Run the following command to open the my.cnf (my.ini for Windows installation) file in a text editor: 

sudo nano /etc/mysql/my.cnf 

If the file is not present, try /etc/my.cnf or /etc/my.cnf.d/community-mysql-server.cnf

None of those locations are correct. The file is actually located in /etc/mysql/mysql.conf.d/mysqld.cnf

and i had to Google that! (https://askubuntu.com/questions/829772/mysql-failed-to-restart-on-ubuntu-16-04)

Another example:

2.Download the ODBC connector:

Ubuntu 16: wget https://downloads.mysql.com/archives/get/p/10/file/mysql-connector-odbc-8.0.17-linux-ubuntu16.04-x86-64bit.tar.gz

But then on the requirements page (https://help.eset.com/esmc_install/72/en-US/database_requirements.html)

 

Warning

MySQL ODBC driver versions 5.3.11 and later, 8.0.0 – 8.0.15 and 8.0.18 and later are not supported.

So you provided the instructions to install a version of ODBC that isn't supported.

Instructions should be clear and concise, and these instructions are incredibly confusing and frustrating.

 

Link to comment
Share on other sites

  • Administrators

The instructions read to download MySQL 8.0.17. However, the warning says that only v8.0.0 – 8.0.15 and 8.0.18+ are not supported, ie. v8.0.16-v8.0.17 are supported:

MySQL ODBC driver versions 5.3.11 and later, 8.0.0 – 8.0.15 and 8.0.18 and later are not supported.

Link to comment
Share on other sites

Can you please tell me, when I try to run the installation script:

sudo ./server-linux-x86_64.sh \
--skip-license \
--db-type="MySQL Server" \
--db-driver="MySQL ODBC 8.0 Driver" \
--db-hostname=127.0.0.1 \
--db-port=3306 \
--db-admin-username=root \
--db-admin-password=password \
--server-root-password=password \
--db-user-username=root \
--db-user-password=password \
--cert-hostname="localhost"

I get the following error message:

Extracting archive, please wait...
Archive extracted to /tmp/tmp.WkyFyNr1dO.
Checking OpenSSL ... done [OpenSSL 1.0.2g 1 Mar 2016]
Reading previous installation settings ... failure
Checking installed version... done
Status of current installation is: NEW
Checking database connection ... failure

Error: An error occurred while trying to connect to the database. Error code: (1698). Unable to continue.

 

I can login to the database succesfully using: sudo mysql -u root -p

So i know the username/password is correct.

Is there something else causing the database connection to fail?

Link to comment
Share on other sites

  • ESET Staff
3 hours ago, gmar84 said:

Can you please tell me, when I try to run the installation script:

sudo ./server-linux-x86_64.sh \
--skip-license \
--db-type="MySQL Server" \
--db-driver="MySQL ODBC 8.0 Driver" \
--db-hostname=127.0.0.1 \
--db-port=3306 \
--db-admin-username=root \
--db-admin-password=password \
--server-root-password=password \
--db-user-username=root \
--db-user-password=password \
--cert-hostname="localhost"

I get the following error message:

Extracting archive, please wait...
Archive extracted to /tmp/tmp.WkyFyNr1dO.
Checking OpenSSL ... done [OpenSSL 1.0.2g 1 Mar 2016]
Reading previous installation settings ... failure
Checking installed version... done
Status of current installation is: NEW
Checking database connection ... failure

Error: An error occurred while trying to connect to the database. Error code: (1698). Unable to continue.

 

I can login to the database succesfully using: sudo mysql -u root -p

So i know the username/password is correct.

Is there something else causing the database connection to fail?

Could you please check installer log:

/var/log/eset/RemoteAdministrator/EraServerInstaller.log

for more detailed error description? Most probable reason would be issue related to ODBC driver configuration, but that should be confirmed by installer log.

Link to comment
Share on other sites

Here is the installer log:

2020-10-22 16:14:31 Information: DbCheckConnection: Set output property: P_DB_PORT = 3306
2020-10-22 16:14:31 Information: GetDatabaseServerConnectionStringWithoutEscape: Created connection string: 'Driver=MySQL ODBC 8.0 Driver;Server=127.0.0.1;Port=3306;User=******;Password={*$
2020-10-22 16:14:31 Information: Entering function: void Era::Setup::Common::CustomActions::CDatabaseReader::TestConnection(const string&, Era::Setup::Common::Database::Framework::ConnectO$
2020-10-22 16:14:31 Information: Leaving function: void Era::Setup::Common::CustomActions::CDatabaseReader::TestConnection(const string&, Era::Setup::Common::Database::Framework::ConnectOp$
2020-10-22 16:14:31 Information: Exception thrown while connecting to the specific database as a user.. Error code: 65535, DB specific error code: 1698, error message: [unixODBC][MySQL][OD$
2020-10-22 16:14:31 Information: Entering function: void Era::Setup::Common::CustomActions::CDatabaseReader::TestConnection(const string&, Era::Setup::Common::Database::Framework::ConnectO$
2020-10-22 16:14:31 Information: Leaving function: void Era::Setup::Common::CustomActions::CDatabaseReader::TestConnection(const string&, Era::Setup::Common::Database::Framework::ConnectOp$
2020-10-22 16:14:31 Information: Exception thrown while connecting to the database SERVER as a user.. Error code: 65535, DB specific error code: 1698, error message: [unixODBC][MySQL][ODBC$
2020-10-22 16:14:31 Information: DbCheckConnection: Set output property: P_DB_CONNECTION_STATUS = 1698
2020-10-22 16:14:31 Information: DbCheckConnection: Return code: 0
2020-10-22 16:14:31 Information: Installer: An error occurred while trying to connect to the database. Error code: (1698). Unable to continue.
2020-10-22 16:14:31 Information: Installer: Error: An error occurred while trying to connect to the database. Error code: (1698). Unable to continue.

Edited by gmar84
Link to comment
Share on other sites

Sorry, I think the previous log was incomplete. Attached is the complete copy of the installer log.

I think this line is of interest:

Exception thrown while connecting to the database SERVER as a user.. Error code: 65535, DB specific error code: 1698, error message: [unixODBC][MySQL][ODBC 5.3(w) Driver]Access denied for user 'root'@'localhost'

 

EraServerInstaller.log

Edited by gmar84
Link to comment
Share on other sites

  • 1 month later...

most of you errors are missing "common linux knowledge".
Im not tryin to be offense - but you should probably get more linux skills before installing software like this.

i dont see anything related to ESET.
Also keep in mind that there so MANY Linux distros with different Package Versions.

The Documentation is good - but you should know what you are doing and dont copy paste all commands without thinking.
As example -> if you dont know where your my.cnf is located - you are missing common mysql/mariadb knowledge.
If you dont know how to search for a file on linux -> you are missing common knowledge.

your last error seems also mysql Related.
it could be a DNS Problem, wrong creds. or a missconfigured mysql-daemon.

also you are using the password "password" in your installer.
This cant be right ....
 

Link to comment
Share on other sites

  • 1 month later...
On 12/2/2020 at 11:26 AM, FHolzer said:

most of you errors are missing "common linux knowledge".
Im not tryin to be offense - but you should probably get more linux skills before installing software like this.

i dont see anything related to ESET.
Also keep in mind that there so MANY Linux distros with different Package Versions.

The Documentation is good - but you should know what you are doing and dont copy paste all commands without thinking.
As example -> if you dont know where your my.cnf is located - you are missing common mysql/mariadb knowledge.
If you dont know how to search for a file on linux -> you are missing common knowledge.

your last error seems also mysql Related.
it could be a DNS Problem, wrong creds. or a missconfigured mysql-daemon.

also you are using the password "password" in your installer.
This cant be right ....
 

You know what, I have set up several Ubuntu servers that run internal and public facing webservers, drive imaging, business process management, human resources, and equipment inventory. All virtual, all running either 16.04 or 18.04. I have enough Linux skills to get all of those running with no issues. I have run into many systems where that wasn't so, but it was because the instructions have been terrible. Devs sometimes forget that everyone may have a different definition of what "standard prerequisites" means. One install of a process management system forgot to include 3-4 pieces of software that are not preinstalled on a new install of Ubuntu, and of those, 1 needed a repository added to download it. None of this was mentioned in the installs and it took me reading the logs, googling the module it was missing, and trying the install again and again until I finished it.

The OP is not wrong with these instructions. They are not structured right. The server install information comes before the pre-reqs, for one thing. A user paying for and installing this software shouldn't need sysadmin god-level training to install this. For crying out loud, we shouldn't have to read between the lined about what version of a software piece is compatible. Don't tell us what we can't use. Instead of saying "Version 1, 2, 5, 6 are incompatible", just pick a compatible version and tell us "install version 4" and then provide the details on how to do that particular piece. 

I'm in the same spot right now. Error 1698 running ODBC 5.3 after 8.0 didn't work on MySQL 5.72, which I thought was listed as compatible, but now see where it needs to be a particular version of 8.0. Again, pick a version, tell the user what exactly they should use to make your software work, and then give them directions based on that. 

Split it up, if you need to. "If you're using MySQL on Linux, go here:" and give them pertinent info based on their distro. Don't give us "step-by-step" instructions that start in the middle, send us backwards, and then don't give you the right information so that you have to start over after you google your error and find out you've been using the "wrong version" the whole time. 

I have waded through some terrible instructions for open source software, and taken it with a bit of humor since it was a free license I'm working with and it most likely came from someone in their home working on it in their spare time. But this is one of the larger and more highly rated AV vendors out there and this level of installation documentation is not about having "l33t Linux Skeellz". 

Also, if I was going to paste my install script in a public forum, I wouldn't put the passwords I was using to install it. I would put them in as "password". Security thing. Kind of important.

Now, that being said, I'm wiping this VM and starting over again with the "compatible versions" and see if I have more luck.

 

Link to comment
Share on other sites

  • 3 weeks later...

I went back through with a whole new Ubuntu 20 VM. Followed everything to the letter. Everything looks good, replies back with the correct responses, go to install the server, "Database not configured properly". I went back over the installation instructions, verified I was using the instructions for Ubuntu 20, ODBC 8.0, and MySQL 8. I have tried several permutations of the install script, including a new MYSQL user with root privileges and remote access to the system.

I have a ticket in now, but this has been frustrating far beyond belief. I may have to wait until my new servers come in to upgrade to VMWare 6.7 and then use the VM Appliance...

Link to comment
Share on other sites

Hiya FunkyBlue, I believe I had this issue too when I was attempting to get ERA installed on Debian.

The initial server install script connects to the empty MySQL server, then using MySQL's framework SHOULD create an ERA database user. I've installed ESET Protect 8 now three times, and sometimes it uses the MySQL ROOT user to make db queries to era_db, and other times it used the user it created on the install to make those queries!

I think I've cracked the code to wit:

sudo ./server-linux-x86_64.sh \
--skip-license \
--db-type="MySQL Server" \
--db-driver="MySQL ODBC 8.0 Driver" \
--db-hostname=your.host.name \
--db-port=3306 \
--db-admin-username=root \ ( This is the MySQL root user )
--db-admin-password=password \ ( beware of whitespace or characters which need to be escaped! I had a tough time with whitespace and escaped characters, this would have been set when you went through the MySQL installation on your system)
--db-user-username=erauser \ ( This is the MySQL user ERA WANTS to create and use as the default user for it's era_DB I chose "erauser" ) 
--db-user-password=(erauser password - the script sets this) \
--server-root-password=(webconsole password - the script sets this) \
--cert-hostname="host, ipaddr, FQDN"

I think one of the issues is that a lot of these variables, users, terms, and directives are REALLY close in name, leading to end user transposition in what they THINK ERA wants in those fields. 

At least that's what I've found, and so far the only way I've overcome was by brute force lol!

 

 

 

Link to comment
Share on other sites

Let me get back there and try this again. I even tried copying each switch individually to avoid blank or unneeded characters. I'll update after I have regained consciousness from beating my head into this wall.

Link to comment
Share on other sites

Ok, I think I may have found one issue. You know when they say "It's DNS"? That may be part of it. I manually added the host into my DNS server and changed the user to erauser. then it came back and said user had the wrong password instead of straight failed. I put my created user back in (esetdb) and failed again. 

Should I create the erauser as a user in MYSQL before running it?

Link to comment
Share on other sites

Nevermind. I added an erauser account, re-ran the script, no longer gives me password wrong. Now just back to Database not configured properly again.

Link to comment
Share on other sites

Hey FunkyBlue, 

In my instance, I use 127.0.0.1 as the MySQL host since it's on the same machine. In that case, I didn't create the erauser beforehand. I arbitrarily picked the username erauser, so it would be unique from other db users. You could specify --db-user-username=ladygaga and the installer will create a MySQL user named ladygaga with full access to the MySQL database era_DB.

If the script/installer can connect successfully to the MySQL instance with MySQL's root user, it SHOULD be able to create a DB, then add that user you've specified to that DB as full access.

I think you're on the right path with hostname resolution / DNS!

Something tells me that the script can't connect to your MySQL DB as the root MySQL user then it's just bombing.

Link to comment
Share on other sites

I got it. It was the MYSQL cnf file. It sayd for version 8.0 to put in a line in [mqsqld], but says if you're using 5.62 (or other version) to put in two other lines. I didn't put those lines in because the instructions don't specify they need to be used for 8.0 and make it look like you don't need it. Added those two line in, reloaded mysql, installing now.

Link to comment
Share on other sites

YES! That's right. I bumped into the same issue. 

On the MySQL Server setup of the guide here: 

https://help.eset.com/protect_install/80/en-US/installation_linux.html?mysql_configuration.html

Specifically: 

Quote

2.Find the following configuration in the [mysqld] section of the my.cnf file and modify the values. If the parameters are not present in the file, add them to the [mysqld] section:

max_allowed_packet=33M

For MySQL 8 you have to set the following variable:

olog_bin_trust_function_creators=1

On the initial MySQL install on Debian, and in your instance on Ubuntu, if you look in your /etc/mysql/my.cnf at least on my system, there is no

[mysqld] entry in the distributions my.cnf !

The guide says add these items to your my.cnf under the [mysqld] section.

The guide should amend this and say:

"If you do not have these directives in my.cnf you'll have to add them manually INCLUDING the [mysqld] section!" 

I can see how this can get very confusing, because each of these distros, and each of these open source packages like MySQL and tomcat9 have many different environments depending on who's flavor you're installing.

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...