MySQL系列:5 Server Configuration服务器配置1-配置文件

开门见山

         MySQL的启动配置选项由三部分组成:预编译选项、命令行选项、配置文件选项。默认情况下,MySQL服务器使用预编译选项作为其启动参数,若默认选项不适合部署要求,则可以配置命令行选项或配置文件选项。命令:

mysqld --verbose --help

可以查看mysqld服务进程支持的选项。

         使用配置文件可以做到永久保存相关配置而不需要每次启动MySQL时指定,可减少诸多繁琐的操作和出错概率。因而,配置文件是多数DBA在进行MySQL管理时的首选。下面将详细介绍MySQL的配置文件以及相关配置工具。

Option File Groups—配置文件组

         以其他所有系统的配置文件一样,MySQL的配置文件以配置组形式存在,组名以[group_name]区分。组名为所配置的应用程序名(如mysql、mysqld等)或应用程序类(如client、server等),其示意图如下:

client组:针对所有客户端程序(如mysql、mysqldump)生效;

server组:针对所有服务端程序(如mysqld、mysqld_safe)生效;

Option File Locations—配置文件位置

         MySQL针对不同的OS(windows、类UNIX)在其标准位置查找配置文件,类UNIX下标准配置文件为my.cnf、windows下标准配置文件为my.ini。具体搜索位置可以使用如下命令查看:

mysqld --help --verbose 2> /dev/null | grep -A1 "Default options"

说明:grep –A1表示匹配到字符串后,追加打印1行字符。

MySQL Startup Options启动选项

       mysqld的启动选项主要包括如下几类:日志记录Logging、默认存储引擎default storage engine、系统变量system variables、共享内存Shared memory(windows)、命名管道链接Named Pipe Connections(windows)等。如开启MySQL的binlog、general log、slow query log,可配置如下:

# ----zavier 20190720  binlog
server-id               = 1
log_bin                 = /var/lib/mysql/binlog/binlog
expire_logs_days        = 1
max_binlog_size   = 60M

# ----zavier 20190720  general log
general_log             = 1
general_log_file        = /var/lib/mysql/otherlog/general.log

# ----zavier 20190720  slow log
slow_query_log=on
slow_query_log_file = /var/lib/mysql/otherlog/slow.log
long_query_time = 2
log-queries-not-using-indexes

Displaying Options from Option Files显示配置文件中的选项

         MySQL提供相关命令(my_print_defaults)可显示当前配置文件中的选项,使用方式:

my_print_defaults [options] option_group

也可使用应用程序的--print-defaults选项显示此信息,如下:

jwlLinux jwllinux # mysqld --print-defaults

mysqld would have been started with the following arguments:
--federated --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --basedir=/usr --datadir=/var/lib/mysql --tmpdir=/tmp --lc-messages-dir=/usr/share/mysql --skip-external-locking --secure_file_priv= --bind-address=0.0.0.0 --key_buffer_size=16M --max_allowed_packet=16M --thread_stack=192K --thread_cache_size=8 --myisam-recover-options=BACKUP --query_cache_limit=1M --query_cache_size=16M --log_error=/var/log/mysql/error.log --server-id=1 --log_bin=/var/lib/mysql/binlog/binlog --expire_logs_days=1 --max_binlog_size=60M --general_log=1 --general_log_file=/var/lib/mysql/otherlog/general.log --slow_query_log=on --slow_query_log_file=/var/lib/mysql/otherlog/slow.log --long_query_time=2 --log-queries-not-using-indexes

创建加密的配置文件

         在使用mysql客户端时,我们常常需要指定用户名和密码以登录到mysql服务器(如 mysql -u root -p),根据上述描述,我们可以在[mysql]或[client]配置组中配置user和password,以便实现伪造的“免密登录”,如下:

jwlLinux ~ # cat /etc/mysql/conf.d/mysql.cnf

[mysql]
# add by zavier 20190720
user=root
password=root
show-warnings
jwlLinux ~

但是,此配置文件以明文方式存储密码,存在安全风险。因而,MySQL提供mysql_config_editor命令配置加密的登录选项,此命令在当前用户的HOME目录创建加密的登录选项配置文件,并将相关配置封装成密文存储其中。如下:

这样,用户就可以快速登录到mysql 了:

总结

         MySQL配置文件可以方便/永久的记录你所需要的相关服务选项,灵活的使用配置文件及相关工具可以方便的管理MySQL服务,进而提升管理效率。

猜你喜欢

转载自blog.csdn.net/zhaogang1993/article/details/96702955