For these reasons, I have decided that all examples for this book be run against a MySQL (version 6.0) database, and that the mysql command-line tool be used to format query results.
There is slight difference in meaning between "should be" and "be" in this context but it is so specific to the context that it is extremely trivial. The examples in the book must be run against MySQL because the author wrote them that way. The decision to run against MySQL was made before the book was published and the note is not telling the reader that they should run the examples against MySQL; it is telling the reader that they are run against MySQL.
A case could be made for using "should be" but program examples cannot be successfully run against the incorrect tooling and, therefore, wouldn't actually run. Programming lingo typically drops "should" in this context.
But even if you disagree with that dropping of "should" I don't think the author would have included it for a completely different reason. A common style for these kinds of books is to refer to examples as if they exist in the future -- especially when referring to them from an introduction. This style will use "be" as a shortened form of "will be".
More details on the context are below but the quick answer is no, "should" is not necessary here because the author is intending to convey that the examples will be run in the future, after he creates them.
The relevant word at play is actually "run":
run — to operate or function
For an example program to "run against" something means it operates or functions on that something and it is a declaration of dependency:
These examples run against MySQL. Without MySQL they cannot be run.
The choice of "have decided" makes the tenses in the sentence strange, in my opinion, and it seems to flow slightly better by replacing "have decided" with "decided" and "be" with "are/was":
For these reasons, I decided that all examples for this book are run against a MySQL (version 6.0) database, and that the mysql command-line tool was used to format query results.
But since the author is referring to the examples as if they hadn't been written yet, they are in the "future" of the book. When they are eventually "written", they "will be" run against MySQL. So the other alternative:
For these reasons, I have decided that all examples for this book will be run against a MySQL (version 6.0) database, and that the mysql command-line tool will be used to format query results.
The author just chose to drop the "will":
For these reasons, I have decided that all examples for this book be run against a MySQL (version 6.0) database, and that the mysql command-line tool be used to format query results.
Here are quick examples of all possible tense structures for this context.
- The examples were created in the past (and were presumably run at creation)
- The examples exist in the present (and could be run now)
- The examples will exist in the "future" of the books pages (and will be run at the time of creation)
- The examples will be run in the future by readers of the book
(1) would say "were run", (2) would say "are run", (3) would say "will be run" or "be run", (4) would say "will be run" or "be run" or "should be run".
I suspect that the author is intending to convey (3) and, as such, used "be" in place of "will be".