...
Except for two plain text files: the MONyog.log file and a very small .ini file (that contains information about the port on which SQL DM for MySQL listens, The SQL DM for MySQL administrator password and the path to the data folder), everything is kept in high-performance database files (SQLite format).
TOP
10. Can I move a SQL DM for MySQL installation to another computer while keeping the data stored in SQL DM for MySQL database?
Yes, this is quite simple actually. Just install SQL DM for MySQL on the 2nd machine. After install stop the running MONyog(SQL DM for MySQL) service and copy the ..\MONyog\Data folder from the old installation. You may also copy the MONyog.log if you want. All the connection configuration and the data will be in 'data' directory. The error log is MONyog.log and setting are stored in 'MONyog.ini' and 'preferences.config'. If you have made any changes to monitors they will be stored in 'Counters.def' and for CSO's in 'udo.def'. Copy all of them from your old installation onto new PC. After that start the service again.
TOP
11. Can SQL DM for MySQL be configured as a virtual host in my 'ordinary' Apache webserver?
...
After changing the configuration, restart the apache server.
TOP
12. How can I access SQL DM for MySQL pages proxying through other webservers?
...
Code Block |
---|
|
<Proxy *>
Order deny, allow
Allow from all
</Proxy>
ProxyHTMLExtended On
ProxyPass /monyog/ http://<ip-system-B>:5555/
ProxyHTMLURLMap http://<ip-system-B>:5555/ /monyog/
<Location /monyog/>
ProxyPassReverse /
SetOutputFilter proxy-html
ProxyHTMLURLMap / /monyog/
RequestHeader unset Accept-Encoding
</Location> |
TOP
13. How can I access SQL DM for MySQL pages proxying through nginx?
...
Code Block |
---|
|
server {
server_name _;
listen 80;
location / {
proxy_pass http://<ip-system-b>:5555;
proxy_redirect off;
proxy_cache my-cache;
proxy_cache_valid 200 302 0m;
proxy_cache_valid 404 0m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 9000;
proxy_send_timeout 9000;
proxy_read_timeout 9000;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
server {
server_name _;
listen 443;
ssl on;
ssl_certificate /etc/nginx/conf/<certificate_name>.crt;
ssl_certificate_key /etc/nginx/conf/<certificate_key>.key;
location / {
proxy_pass http://<ip-system-b>:5555;
proxy_redirect off;
proxy_cache my-cache;
proxy_cache_valid 200 302 0m;
proxy_cache_valid 404 0m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 9000;
proxy_send_timeout 9000;
proxy_read_timeout 9000;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
} |
TOP
14. Can I access SQL DM for MySQL pages using encrypted connection such as "https"?
...
Create a directory
Now protect the directory,
Code Block |
---|
|
chmod 0700 sslcert |
Create two subdirectories
Code Block |
---|
|
mkdir certs private |
Create a database to keep track of each certificate
Code Block |
---|
|
echo '100001' >serial
touch certindex.txt |
Create a custom config file for OpenSSL to use similar to openssl.cnf in your /etc/pki/tls folder.
Code Block |
---|
|
dir = .
[ ca ]
default_ca = CA_default
[ CA_default ]
serial = $dir/serial
database = $dir/certindex.txt
new_certs_dir = $dir/certs
certificate = $dir/cacert.pem
private_key = $dir/private/cakey.pem
default_days = 365
default_md = md5
preserve = no
email_in_dn = no
nameopt = default_ca
certopt = default_ca
policy = policy_match
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ req ]
default_bits = 1024 # Size of keys
default_keyfile = key.pem # name of generated keys
default_md = md5 # message digest algorithm
string_mask = nombstr # permitted characters
distinguished_name = req_distinguished_name
req_extensions = v3_req
[ req_distinguished_name ]
0.organizationName = Organization Name (company)
organizationalUnitName = Organizational Unit Name (department, division)
emailAddress = Email Address
emailAddress_max = 40
localityName = Locality Name (city, district)
stateOrProvinceName = State or Province Name (full name)
countryName = Country Name (2 letter code)
countryName_min = 2
countryName_max = 2
commonName = Common Name (hostname, IP, or your name)
commonName_max = 64
0.organizationName_default = My Company
localityName_default = My Town
stateOrProvinceName_default = State or Providence
countryName_default = US
[ v3_ca ]
basicConstraints = CA:TRUE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
[ v3_req ]
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash |
Create a root certificate All other certificates you create will be based of this. Since this is not a commercial certificate software may complain when they use your certificates. You may give people the "public" certifcate and your certifcate will work like commercial ones when they import it. To create, while in the 'sslcert' directory type:
Code Block |
---|
|
openssl req -new -x509 -extensions v3_ca
-keyout private/cakey.pem -out cacert.pem -days 365 -config ./openssl.cnf |
You will be prompted for information and a password. Do not lose this password, make sure it is a secure one and back up the two files that are created.
The two files that are created are cacert.pem, which is the one you can give to others for import in their browsers and cakey.pem, which will be in the private directory.
Create a key and signing request
Code Block |
---|
|
openssl req -new -nodes -out name-req.pem
-keyout private/name-key.pem -config ./openssl.cnf |
You will be prompted for information. The critical part is the "Common Name". This must be the server's hostname, such as mail.your.domain or the IP address. If you want to cover all subdomains you can enter *.your.domain. Use the "Organizational Unit" to remind you what the certificate is for, such as "Web Server". This will generate two files:
Sign the request This will generate the certificate,
Code Block |
---|
|
openssl ca -out name-cert.pem -config
./openssl.cnf -infiles name-req.pem |
You will be prompted for the password used when creating the root certificate. Two files are created:
- <number.pem> - a copy of it in the certs directory
- name-cert.pem - which is the certificate
Copy to the correct location For apache 2.x on Red Hat using the default location, the directory is:
For the name-key.pem:
Code Block |
---|
|
cp
name-key.pem /etc/httpd/conf/ssl.key/ |
For the certificate:
Code Block |
---|
|
cp
name-cert.pem /etc/httpd/conf/ssl.crt/ |
Create a Virtual Host
Code Block |
---|
|
<VirtualHost ip-system-A>:443> DocumentRoot /var/www/html
ServerName myserver
ErrorLog /etc/httpd/logs/ssl_error_log
TransferLog /etc/httpd/logs/ssl_access_log
SSLEngine On
SSLCertificateFile /etc/httpd/conf/ssl.crt/name-cert.pem
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/name-key.pem
</VirtualHost> |
Configure proxy in Apache described in FAQ 13 and restart Apache.
Edit the Hosts file [/etc/hosts]
Code Block |
---|
|
<ip-system-A> myserver |
TOP
15. What are the major differences between other major MySQL Monitoring Tool and SQL DM for MySQL?
...
- SQL DM for MySQL is distributed with a perpetual license and is not bundled with anything else. But other MySQL Monitoring Tools are available only as part of a larger support package with periodical license terms.
- SQL DM for MySQL needs no installation (of 'agents') on the server where the MySQL servers are running. Other does.
- SQL DM for MySQL 'has everything in itself' - the webserver, the database, the MySQL client. It does not depend on the existence of other webservers, runtimes/Virtual Machines (like JAVA) and needs no separate database install. Other monitoring tools requires a full JDK (java), a TOMCAT server and a MySQL server instance for itself. Due to this simplified architecture install, configuration and first of all maintenance and upgrade is much simpler with SQL DM for MySQL. Download packages and disk storage required are much smaller with SQL DM for MySQL.
TOP
16. Can I trust the expertise of SQL DM for MySQL developers?
SQL DM for MySQL is developed by the Webyog Softworks that also created the most popular GUI for data management with the MySQL server - SQLyog Enterprise. We have more than 10 years of experience with designing MySQL related software. We have expanded our team with highly qualified developers ever since we started. We are devoted to constantly extending our knowledge and understanding of MySQL internals. What more would you expect?
TOP
17. How does SQL DM for MySQL connect to MySQL?
SQL DM for MySQL uses the most proved and most efficient way of connecting: the native MariaDB Connector/C that is compiled into SQL DM for MySQL. Nothing else required: no separate client instance, no database abstraction layer (like ODBC/JDBC/ADO/.NET) and no webserver extensions (like PHP). Additionally, the connection can be 'wrapped' in a SSH tunnel. Also, SQL DM for MySQL implementation for this does not involve any other program (like Putty) running.
TOP
18. Windows warns after installation that SQL DM for MySQL may not have installed properly.
...
- Backup the connections.data file before uninstalling
- Restore the old connections.data after the new install. After a restart, SQL DM for MySQL will recognize connection settings in the old connections.data.
TOP
19. I would like to use SSH-tunnel, but my Windows server does not support it. Can that be fixed?
Yes, SSH support can be installed on Windows. You may install a complete Cygwin (Unix command line implementation for Windows). Alternatively, there are small packages available that support only a small subset of Cygwin (like SSH packages). Installation details depends on the exact Windows version.
TOP
20. SQL DM for MySQL throws an error when trying to connect to MySQL.
Please go through Error when trying to connect to MySQL. The same as here applies to SQL DM for MySQL as the client code is exactly the same in both programs. Observe however that everything related to HTTP-tunneling with SQLyog is not relevant for SQL DM for MySQL.
TOP
21. Failed to connect to MySQL: Can't connect to local MySQL server through socket... What can i do about this?
Ensure that the host specified resolves to an IP-adress. This error occurs with some Linux distributions (most important Debian) when specifying 'lcoalhost'. The system will map this to a Unix SOCKET file. SQL DM for MySQL connects through TCP and not to SOCKET. Try the ip '127.0.0.1' instead.
TOP
22. SQL DM for MySQL is taking up too much of system resources with the PROCESSLIST-based sniffer.
You may have noticed that, while using the PROCESSLIST-based sniffer, SQL DM for MySQL increases the load on the CPU as well as the I/O subsystem of the system on which it is installed - even when the MySQL server is idle. Don't panic: it's normal. When using the PROCESSLIST-based sniffer, SQL DM for MySQL continually queries the MySQL server at the end of each time interval, which can be specified by you. It then retrieves the results and stores them in an internal sniffer database before displaying the results back to you. Now, if you set a very short time interval, one that almost approaches 0, then in actuality SQL DM for MySQL will almost be stuck in an infinite loop! Consequently, the load on the CPU and I/O subsystem will increase exponentially. We generally recommend an interval of not more than 0.1sec times the number of servers for which Processlist-based sniffers are enabled. However, if you're worried that you may miss out on some important queries running on the MySQL server, use the Performance Schem or MySQL Proxy mode. The LUA script supplied with SQL DM for MySQL should handle the task for MySQL proxy. For more information on using MySQL Proxy with SQL DM for MySQL, click here.
TOP
23. Why is display of queries truncated in Query Analyzer?
...
- As a security measure, SQL DM for MySQL extracts only the first 2000 characters of the query.
- MySQL does not record query delimiters in the General Log. Therefore, while analyzing the General Log, SQL DM for MySQL takes into consideration only the first line of the queries, and ignores the rest if they span over multiple lines.
TOP
24. The servers that I have registered do not display. What is wrong?
Check if the server is filtered based on a particular state, change your server filter to All Servers and now you will be able to see your server amongst the servers if you had successfully registered it. You can also use the search bar next to the server filter to search for your server name or tag name to get to your server.
TOP
25. Now, anybody will be able to connect to my SQL DM for MySQL server and retrieve details about MySQL servers.
Of course not! The SQL DM for MySQL authentication system will ensure that only those people that should have access have.
TOP
26. I have the same server registered twice. Metrics are reported different. Why?
For every registered server SQL DM for MySQL collects data independently. That is also the case when a server has been registered twice. Even if they were registered at the same time and even if the chosen sample interval is the same too, the connection and the server will have some latency and data will not be retrieved simultaneously. For that reason SQL DM for MySQL may (or rather will) retrieve and store slightly different values for each connection. This is most visible in the 'Delta' timeframe and least visible in the 'Current/all' timeframe. For GROUPING with 'History/Trends' the difference for each GROUP will depend on the selected grouping interval. Due to laws of statistics the difference will be less the longer the time interval (theoretically/statistically they will converge more and more the closer time interval and/or the no. of samples comes to infinity). Practically, you will rarely need more than around 20 samples in a GROUP for the difference to be negligible.
TOP
27. Will it affect the performance of a server if SQL DM for MySQL connects to it?
It will practically not on real 'live' servers. The queries sent by SQL DM for MySQL use almost no resources. We do not query data stored on disk and what we do query is stored in memory on the server. However if you are testing SQL DM for MySQL using a server instance that does almost nothing else and if you retrieve data at very short intervals the impact of SQL DM for MySQL may be slightly observable. The special Processlist feature (unique) may take a little more resources if there are lots of processes/client threads running. But SQL DM for MySQL only sends queries related to this when the corresponding SQL DM for MySQL client interface (the SQL DM for MySQL 'processlist' page) is open. Switching to another page or closing the browser will stop sending the queries populating the SQL DM for MySQL processlist.
TOP
28. Is it possible to avoid that SQL DM for MySQL itself influences certain counters reported?
SQL DM for MySQL is a client. When it connects the MySQL server will start a connection thread. And that connection will be reported by SQL DM for MySQL. That cannot be avoided. The processlist feature has an option to 'filter out' SQL DM for MySQL connection - as well as other connections from other clients if you want - using a simple SELECT statement.
TOP
29. Can I customize SQL DM for MySQL counters?
...