数据库服务的初始化配置操作的目的,主要是在某些场景下,想让数据库服务程序启动后,具备一些定制化的功能应用;

一、初始化配置方式一:源码安装数据库服务

1、数据库服务源码安装准备阶段:

(1) 下载数据库服务软件程序(源码程序)

下载链接地址:https://dev.mysql.com/downloads/mysql/

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.12.tar.gz
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.12.tar.gz

(2) 处理数据库服务软件依赖

yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel

(3) 解压数据库服务软件程序

tar xf mysql-8.0.12.tar.gz
tar zxf mysql-boost-8.0.12.tar.gz -C /usr/local/

2、数据库服务源码安装环境创建

(1) 创建数据库服务管理用户

useradd mysql -s /sbin/nologin

(2) 创建数据库服务所需目录

#创建数据库服务程序数据存储目录
mkdir -p /usr/local/mysql8.0

#创建数据库服务日志存储目录
mkdir -p /data/mysql8.0/log

(3)赋权

chown -R mysql:mysql /data/mysql8.0/
chown -R mysql:mysql /usr/local/mysql8.0

3、数据库服务源码编译安装过程

(1) 数据库服务编译安装配置过程(初始化过程)

cd /usr/local/src/mysql-8.0.12
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql8.0 -DMYSQL_DATADIR=/usr/local/mysql/data -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/mysql-8.0.12/ -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLE_DTRACE=0 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8mb4

(2) 数据库服务编译安装部署过程

make && make install

4、数据库服务源码程序启动配置

(1)编写配置文件

vim /etc/my.cnf

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8mb4

[mysql]
prompt="MySQL [d]> "
no-auto-rehash

[mysqld]
port = 3306
socket = /tmp/mysql.sock
default_authentication_plugin = mysql_native_password
basedir = /usr/local/mysql8.0
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/data/mysql.pid
user = mysql
server-id = 1

init-connect = 'SET NAMES utf8mb4'
character-set-server = utf8mb4
collation-server = utf8mb4_0900_ai_ci

skip-name-resolve
back_log = 300
max_connections = 1000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 500M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 4M
thread_cache_size = 8
ft_min_word_len = 4
log_bin = mysql-bin
binlog_format = mixed
binlog_expire_logs_seconds = 604800
log_error = /usr/local/mysql/data/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /usr/local/mysql/data/mysql-slow.log
performance_schema = 0
explicit_defaults_for_timestamp
skip-external-locking
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1

interactive_timeout = 28800
wait_timeout = 28800

[mysqldump]
quick
max_allowed_packet = 500M

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

(2)数据库服务初始化

cd /usr/local/mysql
bin/mysqld --initialize-insecure --user=mysql

(3)配置环境变量

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

(4)启动数据库

cp support-files/mysql.server /etc/init.d/mysql8
chmod +x /etc/init.d/mysql8
sed -i "s@^datadir=.*@datadir=/usr/local/mysql/data@" /etc/init.d/mysql8
sed -i "s@^basedir=.*@basedir=/usr/local/mysql8.0@" /etc/init.d/mysql8
/etc/init.d/mysql8 restart

5、配置MySQL8 的密码

/usr/local/mysql/bin/mysql -u root -p
MySQL [(none)]> alter user root@'localhost' identified by '123456';
MySQL [(none)]> flush privileges;

重新登录数据库

mysql -u root -p 123456

更详细数据库服务源码部署安装过程参考链接:http://www.hzhcontrols.com/new-641636.html

二、初始化配置方式二:修改数据库配置文件

1、修改数据库配置文件参数,定义数据库服务功能

vim /etc/my.cnf

2、配置文件加载应用读取顺序:

(1)通过数据库服务启动命令获取加载文件顺序

[root@master ~]# mysqld --help --verbose|grep my.cnf
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

数据库服务加载配置文件顺序:

/etc/my.cnf --> /etc/mysql/my.cnf --> /usr/local/mysql/etc/my.cnf --> ~/.my.cnf

(2) 数据库服务加载特定路径中的配置文件信息

利用启动脚本加载参数信息,手工指定加载配置文件的路径位置信息

#客户端手工指定加载配置文件的路径位置信息
mysqld --defaults-file=/opt/my.cnf &

#服务端手工指定加载配置文件的路径位置信息
mysqld_safe --defaults-file=/opt/my.cnf &

3、配置文件书写格式规范说明

模板文件:

[root@master ~]# cat /etc/my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
port=3306
server_id=6
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock

#客户端常用标签类型:[mysql] [mysqldump] [mysqladmin] ----> [client]
#服务端常见标签类型:[mysqld]  [mysql_safe]  ----> [server]

获取全部配置参数

[root@master ~]# mysql --verbose --help

4、配置文件信息结构说明:

序号 配置部分 配置信息说明
01 带有[]部分 表示配置标签部分,用于区分不同程序运行的参数,包含服务器端和客户端标签信息
[服务端标签] 负责数据库服务端运行参数信息设定
[客户端标签] 影响客户端与服务连接参数信息设定(只影响本地客户端连接,不影响远程客户端连接)
02 不带[]部分 表示配置参数部分

5、配置文件信息内容说明:

序号 配置信息 解释说明
[mysqld] 服务端配置标签
01 user=mysql 表示数据库服务管理用户信息
02 basedir=/usr/local/mysql 表示数据库服务程序安装路径
03 datadir=/data/3306/data 表示数据库服务数据存储路径
04 server_id=6 表述数据库服务标识节点编号(主从复制的唯一编号)
05 port=3306 表示数据库服务启动端口设定
06 socket=/tmp/mysql.sock 表示数据库服务本地连接文件(套接字文件)
07 default_authentication_plugin=mysql_native_password 表示数据库服务加密插件设定,用于向下兼容
[mysql] 客户端配置标签(本地连接数据库生效)
01 socket=/tmp/mysql.sock 表示数据库服务本地连接文件(套接字文件)

三、初始化配置方式三:设置数据库启动命令

重新启动数据库服务,并设置启动方式为忽略授权表启动方式

[root@master ~]# mysqld_safe  --skip-grant-tables --skip-networking &

相关参数说明:

  • skip-grant-tables 表示忽略授权表启动
  • skip-networking 忽略网络通讯方式启动(关闭远程连接功能)

说明:在命令加参数信息完成的初始化过程,是会优于配置文件中加载的配置参数信息