数据库服务的初始化配置操作的目的,主要是在某些场景下,想让数据库服务程序启动后,具备一些定制化的功能应用;
一、初始化配置方式一:源码安装数据库服务¶
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 忽略网络通讯方式启动(关闭远程连接功能)
说明:在命令加参数信息完成的初始化过程,是会优于配置文件中加载的配置参数信息