Commit graph

586 commits

Author SHA1 Message Date
Jean-Marie Renouard
f2c8ca86b2
Merge pull request #526 from grooverdan/anonuser
anonymous users - remove password checks
2021-01-27 21:29:38 +01:00
Jean-Marie Renouard
8fb9195c4f
Merge pull request #525 from grooverdan/qc
query_cache off with query_cache_type=OFF OR query_cache_size=0
2021-01-27 21:28:18 +01:00
Daniel Black
2f45f349c9 anonymous users - remove password checks
For anonymous users, those with user='', having a recommendation
to set their passwords, and warning that the password is the same
as the username is a little excessive since there's already a
recommendation to drop the user.

So let's remove those recommendation so we don't see:

[!!] User '@localhost' has user name as password.
[!!] User '@localhost.localdomain' has user name as password.

or:

    Set up a Secure Password for @localhost user: SET PASSWORD FOR ''@'SpecificDNSorIp' = PASSWORD('secure_password');
    Set up a Secure Password for @localhost.localdomain user: SET PASSWORD FOR ''@'SpecificDNSorIp' = PASSWORD('secure_password');

Lets keep the focus on:
-------- Security Recommendations ------------------------------------------------------------------
[!!] User ''@'localhost' is an anonymous account. Remove with DROP USER ''@'localhost';
[!!] User ''@'localhost.localdomain' is an anonymous account. Remove with DROP USER ''@'localhost.localdomain';
2021-01-27 17:15:03 +11:00
Daniel Black
3ac95cd046 query_cache off with query_cache_type=OFF OR query_cache_size=0
From the MySQL and MariaDB code (same - 5.5 version):
https://github.com/mysql/mysql-server/blob/5.5/sql/sql_cache.h#L560
https://github.com/MariaDB/server/blob/5.5/sql/sql_cache.h#L572

This is used:
https://github.com/mysql/mysql-server/blob/5.5/sql/sql_prepare.cc#L3058
(same in MariaDB code)

The size=0 and type=0 are both sufficent conditions for the query
cache to be disabled. As such lets consider it ok if its disabled
only in one place. This is the case in mariadb where type=0 (OFF)
is the default as is a non-zero query-cache size.
2021-01-27 17:02:58 +11:00
Daniel Black
99e5c83779 Aria/MyISAM cleanup
Include calculation of Aria index size based of *.MAI files.

Use find -0 | xargs -0 to allow for space containing names.
Quote datadir in find in case it had spaces.

Use xargs -r (GNU extension) (supported Linux, FreeBSD, OpenBSD,
NetBSD, not Solaris, not OSX) to not run if there's no files that match.
This prevents it running the total of the current directory if
there are no M[YA]I files.

A total size of 0 for Aria or MyISAM indexes isn't a problem
because:
* MySQL-5.[567] used MyISAM system tables which have indexes, so 0
wasn't possible (except for remote user without mysql.* access).
* 0 size of index is equally likely to be 0 tables of this type
  (e.g. MySQL-8.0, or MariaDB-10.4+ (Aria default, not MyISAM)).

Setting total_aria_indexes=1 when it was previously 0 is misleading.

Aria was never called AriaDB despite the apparent convention in
other storage engines so use just Aria, or Aria Storage Engine
in messages.

Differentiate between Aria not available and disabled in report.
2021-01-27 15:56:10 +11:00
Sergey Dryabzhinsky
ce23262b27 Fix else+if construction 2020-12-26 12:32:59 +03:00
Sergey Dryabzhinsky
b1a1829362
For #518 - use new schema for mariab-10.2+
And check for one more column existance
2020-12-26 12:02:51 +03:00
Jean-Marie Renouard
aac1ab2b4d
Merge pull request #514 from grooverdan/mdb10.4-secure-users
secure users MariaDB-10.4+ / MySQL auth socket
2020-12-08 08:30:23 +01:00
Jean-Marie Renouard
643e5e4e98
Merge pull request #515 from grooverdan/delanonymous
DROP USER to delete anonymous accounts
2020-12-08 08:30:04 +01:00
Daniel Black
6f966dee45 MariaDB-10.1 EOL, MariaDB-10.5 is GA 2020-12-08 15:25:59 +11:00
Daniel Black
1bb30f508e DROP USER to delete anonymous accounts
DROP USER has existed for a very long time.

Use the QUOTE sql function to ensure accounts are correctly quoted
and this helps the delete recommendation.
2020-12-08 14:37:26 +11:00
Daniel Black
79a4403c9c MySQL-5.7/8.0+ auth_socket is safe
MySQL has auth_socket as its plugin compared to unix_socket on MariaDB
so accept that as a valid reason for having no authentication.

MySQL [(none)]> show create user dan@localhost;
+-----------------------------------------------------------------------------------------------------------------+
| CREATE USER for dan@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| CREATE USER 'dan'@'localhost' IDENTIFIED WITH 'auth_socket' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK |
+-----------------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

MySQL [(none)]> select user,host,plugin from mysql.user;
+---------------+-----------+-----------------------+
| user          | host      | plugin                |
+---------------+-----------+-----------------------+
| root          | localhost | mysql_native_password |
| mysql.session | localhost | mysql_native_password |
| mysql.sys     | localhost | mysql_native_password |
| dan           | localhost | auth_socket           |
| expiretest    | %         | mysql_native_password |
| expiretest    | localhost | mysql_native_password |
+---------------+-----------+-----------------------+
6 rows in set (0.001 sec)

MySQL [(none)]> select version();
+-----------+
| version() |
+-----------+
| 5.7.31    |
+-----------+
2020-12-08 14:18:03 +11:00
Daniel Black
0eef9260a8 mariadb-10.4+ empty passwords
MariaDB-10.4 migrated their authentication to a global_priv table in JSON
format. Also locked user accounts where added. By default the mariadb.sys
is a locked user without a password and there as the owner of the mysql.user
view. As its hazardous for a user to modify this we exclude locked accounts
but still search for mysql_native_password plugin without authentication.

We use versioned comments to process all other versions. The 5.5+ MySQL
version comment is also read by MariaDB (ref: https://mariadb.com/kb/en/comment-syntax/
enabling the processing of plugins on other version that have plugins.

While this branch doesn't yet apply to MySQL-8.0 yet, we add support
for the locked user accounts in MySQL-8.0+ in a versioned comment
(not read by MariaDB).
2020-12-08 14:00:39 +11:00
Jean-Marie Renouard
de4b145e96 Remove innodb_buffer_pool_instances recommendations for MariaDB #512
Remove innodb_buffer_pool_instances recommendations for MariaDB #512
2020-11-16 20:22:24 +01:00
Jean-Marie Renouard
b5718d0e2f Merge branch 'master' of https://github.com/major/MySQLTuner-perl 2020-11-05 17:29:32 +01:00
Jean-Marie Renouard
cff819d46f Change version number 2020-11-05 17:29:26 +01:00
Jorge Vallecillo
d2a8f0b60a Remove references to the domain mysqltuner.com. #501 2020-09-03 10:17:58 -06:00
Jean-Marie Renouard
b6f8f9f9a3 Merge branch 'master' of https://github.com/major/MySQLTuner-perl 2020-05-04 11:02:49 +02:00
Jean-Marie Renouard
00ce968c6a Removing windows end of lines 2020-05-04 11:01:34 +02:00
Jean-Marie Renouard
6038bd7749 Update mysqltuner.pl
Back to MYsqltuner 1.7.19
2020-05-03 23:12:19 +02:00
Jean-Marie Renouard
9236ec0f80 Update mysqltuner.pl
Fix error
2020-05-03 23:07:42 +02:00
Jean-Marie RENOUARD
1e8b32a253 merged 2020-05-02 16:01:37 +02:00
root
12ae60c6f2 local commit 2020-05-02 15:56:26 +02:00
Kovalkov Dmitrii
e7609d7a91 And for debug line ignore these lines 2020-01-23 16:37:45 +03:00
Kovalkov Dmitrii
dc4aa248c8 Ignore
200122 12:09:15 mysqld_safe Logging to '/var/log/mysql/error.log'.
when we count errors in log
2020-01-23 11:24:56 +03:00
Jean-Marie Renouard
7965211fa0
Merge pull request #466 from Ruzgfpegk/bugfix/mariadb-sys-update
Suggest using mariadb-sys from FromDual in script
2020-01-09 22:16:39 +01:00
Ruzgfpegk
8ffd81475a
Updates link to MyISAM table_cache scalability doc
Fixes #465 .
2020-01-09 15:53:56 +09:00
Ruzgfpegk
3555142ead
Suggest using mariadb-sys from FromDual in script
Follows #443 and #444.
2020-01-09 15:04:04 +09:00
jfcoz
c5765f0213 Include max_allowed_packet in thread memory size
Fix https://github.com/major/MySQLTuner-perl/issues/378
Fix https://github.com/major/MySQLTuner-perl/issues/456
2019-12-12 13:31:23 +01:00
Jean-Marie Renouard
345bf1ae24 Issue Typo in commit 6f6130b (ymsql => mysql) (#459) 2019-10-17 17:39:45 +02:00
155da8c074 SCALAR ref while strict refs 2019-10-04 12:10:16 +02:00
Jean-Marie Renouard
6f6130b12b Missing password is not recognized #412 2019-10-03 23:15:31 +02:00
Jean-Marie Renouard
851cd817de Update version command #428 2019-10-03 22:33:22 +02:00
Jean-Marie Renouard
66f2ee40be About innodb_log_file_size changing recommendation #408 2019-10-03 22:10:18 +02:00
Jean-Marie Renouard
792b46b03c About innodb_log_file_size changing recommendation #408 2019-10-03 22:06:51 +02:00
Jean-Marie Renouard
6aa887d5a5 Use of uninitialized value $engine in concatenation (.) or string #350 2019-10-03 21:52:30 +02:00
Jean-Marie Renouard
143b80b3a6 Add recommendation on table_definition_cache #433 2019-10-03 21:29:03 +02:00
Jean-Marie Renouard
a421f73e26 Add note about join_buffer_size #434 2019-10-03 21:04:12 +02:00
Jean-Marie Renouard
d1f39e9a00 Script is failing on MySQL 5.6.10(AWS Aurora) #435 2019-10-02 01:13:34 +02:00
Jean-Marie Renouard
f18a3ef33f Update mysqltuner.pl
FAIL Execute SQL / return code: 256 #442
disable column type to ENUM suggestion #356
2019-10-02 00:44:54 +02:00
Jean-Marie Renouard
a9bed2ffa0 Percona Server 8.0 - better support
Lot of bug fixes for percona.
2019-10-02 00:07:46 +02:00
Jean-Marie Renouard
b8f191d180 Update error log file analysis 2019-09-26 00:41:10 +02:00
Jean-Marie Renouard
7332f8d5c4 Wrong report of InnoDB Storage engine status #450
Good message is
-------- InnoDB Metrics ----------------------------------------------------------------------------
[--] Skipped due to --skipsize option
2019-09-25 23:50:15 +02:00
Jean-Marie Renouard
ebc6619e4f Bug fix #453 2019-09-25 23:29:22 +02:00
Jean-Marie Renouard
60df6043b1 Update Vulnerabilities list
Indenting mysqltuner
Update Usage information
2019-09-25 20:05:45 +00:00
Billy Noah
066acb0940
Update mysqltuner.pl
Check to make sure mysql.user has a column called 'password'.  Adjust security_recommendations queries accordingly.

This should address issues:
https://github.com/major/MySQLTuner-perl/issues/427
https://github.com/major/MySQLTuner-perl/issues/441
https://github.com/major/MySQLTuner-perl/issues/442
2019-09-10 16:06:58 -04:00
Eduardo Broto
ece5671292 Escape identifiers in table column metrics
Otherwise some queries may fail if reserved words were used as field, table or
database names.
2019-07-10 17:25:23 +02:00
Myrdhin
b10c90ccf8 Fix typo on myvar 2019-05-15 11:01:46 +02:00
Myrdhin
49a1b603da Fix error when innodb_stats_on_metadata not defined 2019-05-15 10:52:51 +02:00
Jean-Marie Renouard
4a01df4a04
Merge pull request #431 from atombrella/should_be
Corrected grammar for innodb_buffer_pool_size recommendation.
2019-03-22 10:20:32 +01:00