Book Image

MySQL 8 Cookbook

By : Karthik Appigatla
Book Image

MySQL 8 Cookbook

By: Karthik Appigatla

Overview of this book

MySQL is one of the most popular and widely used relational databases in the World today. The recently released MySQL 8 version promises to be better and more efficient than ever before. This book contains everything you need to know to be the go-to person in your organization when it comes to MySQL. Starting with a quick installation and configuration of your MySQL instance, the book quickly jumps into the querying aspects of MySQL. It shows you the newest improvements in MySQL 8 and gives you hands-on experience in managing high-transaction and real-time datasets. If you've already worked with MySQL before and are looking to migrate your application to MySQL 8, this book will also show you how to do that. The book also contains recipes on efficient MySQL administration, with tips on effective user management, data recovery, security, database monitoring, performance tuning, troubleshooting, and more. With quick solutions to common and not-so-common problems you might encounter while working with MySQL 8, the book contains practical tips and tricks to give you the edge over others in designing, developing, and administering your database effectively.
Table of Contents (20 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

Managing the MySQL Server with systemd


If you install MySQL using an RPM or Debian package server, startup and shutdown is managed by systemd. On platforms for which the systemd support for MySQL is installed, mysqld_safe, mysqld_multi, and mysqld_multi.server are not installed. MySQL server startup and shutdown is managed by systemd using the systemctl command. You need to configure systemd as follows.

Note

RPM-based systems use the mysqld.service files, and APT-based systems use the mysql.server files.

How to do it...

  1. Create a localized systemd configuration file:
shell> sudo mkdir -pv /etc/systemd/system/mysqld.service.d
  1. Create/open the conf file:
shell> sudo vi /etc/systemd/system/mysqld.service.d/override.conf
  1. Enter the following:
[Service]
LimitNOFILE=max_open_files (ex: 102400)
PIDFile=/path/to/pid/file (ex: /var/lib/mysql/mysql.pid)
Nice=nice_level (ex: -10)
Environment="LD_PRELOAD=/path/to/malloc/library" Environment="TZ=time_zone_setting"
  1. Reload systemd:
shell> sudo systemctl daemon-reload
  1. For temporary changes, you can reload without editing the conf file:
shell> sudo systemctl set-environment MYSQLD_OPTS="--general_log=1"
or unset using
shell> sudo systemctl unset-environment MYSQLD_OPTS
  1. After modifying the systemd environment, restart the server to make the changes effective. Enable mysql.serviceshell> sudo systemctl, and enable mysql.service:
shell> sudo systemctl unmask mysql.service
  1. Restart mysql: On RPM platforms:
shell> sudo systemctl restart mysqld

On Debian platforms:

shell> sudo systemctl restart mysql