一、数据库服务概述介绍
今时今⽇,数据库系统已经成为各个动态⽹站上 web 应⽤程序的重要组成部分。由于⾮常敏感和机密的数据有可能保存在数据库中,所以对数据库实施保护就显得尤为重要了。要从数据库中提取或者存⼊数据,就必须经过连接数据库、发送⼀条合法查询、获取结果、关闭连接等步骤。
⽬前,能完成这⼀系列动作的最常⽤的查询语⾔是结构化查询语⾔ Structured Query Language (SQL)。
并且在对数据库进行管理与维护的过程中,需要对数据库的相关知识进行充分的掌握,最终才能保证企业核心数据的安全性。
1.数据库分类
数据库分为三个大的类型:(随着互联网发展的产品类型)
关系型数据库
RDBMS(关系型数据库软件):主流核心使用数据软件
第一代数据库产品:把复杂的数据结构归结为简单的二元关系(RDBMS),即二维表格形式(二维表);会注重数据存储的持久性,但存储效率低;
此类型数据库服务,类似于excel表格的存储数据方式,多采用SQL语言方式进行操作管理;
关系型数据库:二维表结构数据库 == execl
DBMS(管理系统)
库
表
字段/记录
代表产品:MySQL Oracle Mariadb SQLserver(国企 校园)PostgreSQL(PGSQL)海量数据存储场景--金融行业
关系型数据库四层结构信息:
数据库结构 | 描述说明 |
---|---|
数据库管理系统(DBMS) | 进行数据存储应用管理的操作环境或命令 |
数据库(DB) | 数据存储的承载环境 |
数据表(Table) | 数据关系的构建环境 |
数据字段(Field) | 实际数据信息展现形式 |
常见的关系数据库应用程序:
数据库程序 | 应用说明 |
---|---|
MySQL | 互联网公司应用最广泛 |
Mariadb | 企业场景应用较少 |
Oracle | 传统企业和部分国企应用较多,但也逐步被国产数据库替代 |
SQLserver | 适合windows server系统环境部署的数据库服务,属于微软公司发布的数据库服务 |
PostgreSQL | 适合于海量数据信息存储,对于金融行业数据信息分析能力将强 |
说明:关系型数据库的极致追求:数据存储的安全性,但是在某种程度会损失数据存储和读取的性能。
非关系型数据库
NoSQL(非关系数据库软件):辅助数据库软件程序
第二代数据库产品:实现数据拆分 解决并发压力
非关系型数据库:提高数据存储和读取效率(内存存储数据) 辅助关系型数据库,解决高并发访问问题,没有具体模型的数据结构,英文简称NoSQL,比较注重数据读取的效率;利用NoSQL数据库主要处理高并发应用的场景,以及海量数据存储应用的场景
key value 键值对
代表产品:redis mongodb(文档型数据库==接近关系型数据库)ES(日志信息存储)
常见的非关系数据库应用程序:
数据库程序 | 应用说明 |
---|---|
Redis | 可以利用内存存储数据,也可以采用磁盘存储数据,数据常见展示形式为key-value形式 |
Memcache | 可以利用内存存储数据,也可以采用磁盘存储数据,数据常见展示形式为key-value形式 |
Mongodb | 属于面向文档数据存储的数据库 |
ES | 主要用于做日志数据的收集与检索的数据库(ELK ELFK) |
说明:非关系型数据库的极致追求:数据存储的高效性,但是在某种程序会牺牲数据存储的安全性。
企业新型数据库
DDBMS(分布式数据库软件):解决海量数据存储与管理(NewSQL),由国人研发设计出的数据库服务,可以满足很多国内高并发量网站数据存储和读取业务的需求;
第三代数据库产品:实现业务整合
新型数据库:业务整合 分布式(垂直分布式 水平分布式)
代表产品:OceanBase TiDB PolarDB
常见的新型数据库应用程序:
数据库程序 | 应用说明 |
---|---|
TiDB | 开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理的融合型分布式数据库产品 |
OceanBase | 是由蚂蚁集团完全自主研发的国产原生分布式数据库,兼顾分布式架构的扩展性与集中式架构的性能优势 |
PolarXDB | 是由阿里巴巴自主研发的云原生分布式数据库,是一款基于云架构理念分布式数据库产品,专注海量数据处理 |
RDS/TDSQL | 阿里云/腾讯云平台基于SaaS云计算服务环境构建的数据库产品(PolarXDB TDSQL TiDB) |
数据信息来源参考:https://www.modb.pro/dbRank
数据信息来源参考:https://db-engines.com/en/ranking
数据信息来源参考:https://www.itdks.com/
2.数据库服务作用
-可以实现数据稳定存储(安全性)
-可以分析管理数据信息(数据分析查询) 注册 -- 数据库识别 -- 二进制 -- 磁盘
二、数据库服务安装部署
安装方式 | 特征说明 |
---|---|
采用二进制方式安装 | 直接解压缩二进制程序包,进行简单的配置和初始化操作即可 |
采用rpm包方式安装 | 需要从官方网站下载rpm程序包,并且需要考虑系统环境的兼容性,解决软件程序包依赖 |
采用yum包方式安装 | 需要根据官方网站说明,配置yum下载的仓库源信息,在联网情况下进行安装部署 |
采用源码包方式安装 | 需要从官方网站下载源码程序包,并且需要解决程序包依赖问题,以及需要采用编译安装 |
1.yum安装MySQL8.0
yum方式安装MySQL数据库比rpm安装要简单很多, yum方式的安装原理是在执行yum安装命令后,会自动从yum源地址下载相应名称的MySQL数据库rpm包,然后到系统上安装,并自动解决各种软件包之间的依赖问题。这是一个非常不错的安装软件的方式,不仅仅是针对MySQL,安装其他软件也是如此。
Yum安装方式的最大优点就是超级简单,但是它也有自身的问题,例如它继承了rpm包的无法定制化安装的问题,另外一个缺点是采用默认的yum安装时,无法安装mysql,因为CentOS7开始已经在官方库把默认的mysql换成了开源的mariadb了。如果要用yum方式安装mysql,必须先下载安装MySQL源才行。
yum方式安装mysql8.0.27
CentOS7.9使用yum方式安装mysql8.0.27(2022最新版)
1.关闭selinux
setenforce 0
getenforce
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
2.卸载自带的mariadb依赖包
rpm -qa|grep mariadb # 查找已经安装的mariadb的包
# mariadb-libs-5.5.68-1.el7.x86_64
yum remove mariadb-libs -y # 卸载系统已经安装的mariadb依赖包
3.下载mysql安装源
# 在MySQL官网中下载YUM源rpm安装包:https://dev.mysql.com/downloads/repo/yum/ 或者直接执行下面命令
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-11.noarch.rpm
4.查看安装的mysql源
rpm -ql mysql80-community-release
5.开始安装mysql
yum install mysql-community-server -y
6.启动mysql服务,并检查启动状态
mysqld --initialize-insecure --user=mysql
systemctl enable --now mysqld
netstat -lntup|grep 3306
7.登录测试
mysql
2.rpm安装MySQL8.0
复杂、下载、手工解决依赖、没法定制
1.安装环境
系统:CentOS Linux7.9
数据库:mysql8.0.26
1)关闭selinux:
setenforce 0
getenforce
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
2.下载mysql软件包
注意:下载地址为https://mirrors.aliyun.com/mysql/MySQL-8.0/
cd /opt
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-client-8.0.26-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-devel-8.0.26-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-libs-8.0.26-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-common-8.0.26-1.el7.x86_64.rpm
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-community-server-8.0.26-1.el7.x86_64.rpm
ls
mysql-community-client-8.0.26-1.el7.x86_64.rpm
mysql-community-devel-8.0.26-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
mysql-community-libs-8.0.26-1.el7.x86_64.rpm
mysql-community-common-8.0.26-1.el7.x86_64.rpm
mysql-community-server-8.0.26-1.el7.x86_64.rpm
注意:安装mysql-community-server前,需要先安装下面依赖包:
mysql-community-client
mysql-community-client-plugins
mysql-community-common
mysql-community-libs
net-tools
3.删除已有的mariadb,防止和mysql冲突
rpm -qa|grep mariadb
# mariadb-libs-5.5.68-1.el7.x86_64
yum remove mariadb-libs -y
4.按顺序安装如下软件包(有依赖关系,切记顺序不能乱)
[root@mysql01 opt]# yum install net-tools libaio-devel -y
[root@mysql01 opt]# rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
[root@mysql01 opt]# rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
[root@mysql01 opt]# rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
[root@mysql01 opt]# rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
[root@mysql01 opt]# rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
[root@mysql01 opt]# rpm -qa|grep mysql
mysql-community-client-8.0.26-1.el7.x86_64
mysql-community-common-8.0.26-1.el7.x86_64
mysql-community-libs-8.0.26-1.el7.x86_64
mysql-community-client-plugins-8.0.26-1.el7.x86_64
mysql-community-server-8.0.26-1.el7.x86_64
5.初始化,并启动MySQL
[root@mysql01 opt]# mysqld --initialize-insecure --user=mysql
[root@mysql01 opt]# systemctl start mysqld
[root@mysql01 opt]# netstat -lntup|grep 3306
tcp6 0 0 :::33060 :::* LISTEN 17874/mysqld
tcp6 0 0 :::3306 :::* LISTEN 17874/mysqld
6.启动并检查端口存在后,则输入mysql登录查看。
[root@mysql01 opt]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 MySQL Community Server - GPL
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database oldboy;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oldboy |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
mysql> quit
成功。
3.源码编译安装MySQL8.0
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/
4. 创建数据库服务管理用户
useradd mysql -s /sbin/nologin
5. 创建数据库服务所需目录
mkdir -p /usr/local/mysql8.0 # 数据库服务程序数据存储目录
mkdir -p /data/mysql8.0/log # 数据库服务日志存储目录
chown -R mysql:mysql /data/mysql8.0/
chown -R mysql:mysql /usr/local/mysql8.0
6. 数据库服务编译安装配置过程(初始化过程)
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
7. 数据库服务编译安装部署
make && make install
8.创建数据库配置文件
cat >/etc/my.cnf<<'EOF'
[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/mysql
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
EOF
9.初始化mysql
cd /usr/local/mysql
mkdir data
chown -R mysql.mysql ./*
chown root.mysql /usr/local/mysql
bin/mysqld --initialize-insecure --user=mysql
10.配置MySQL8 的密码
mysql -u root -p
Enter password:
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
报这个错,意思是少了这个插件
需要mysql8自己的客户端才能连接,所以用全路径连接mysql8
/usr/local/mysql/bin/mysql -u root -p
4.二进制安装MySQL8.0
1) 官网下载MySQL安装包
1、打开官网地址,点击downloads
2、进入页面后划到页面底部,点击下载MySQL社区版
3、出现多种下载方式,选择下载社区版
4、选择合适的系统版本,这里选择linux 通用即可
5、使用命令 getconf GNU_LIBC_VERSION 查看后选择对应版本
6、之后下载完整版本
2) 部署MySQL安装包
# 确认操作系统数据库服务安装环境
cat /etc/redhat-release
#CentOS Linux release 7.9.2009 (Core)
# 查看防火墙是否关闭
[root@db01 ~]# systemctl is-active firewalld
unknown
[root@db01 ~]# systemctl is-enabled firewalld
disabled
[root@db01 ~]#
# 查看selinux安全策略是否关闭
[root@db01 ~]# getenforce
Disabled
[root@db01 ~]#
# 清除系统自带的mariadb
[root@db01 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@db01 ~]# yum remove -y mariadb-libs
# 安装数据库服务程序所需的依赖软件包
yum install -y libaio-devel
# 需要修改链接库信息
ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
# 上传解压数据库服务软件程序压缩包
tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /usr/local
# 创建数据库服务程序目录的软链接
cd /usr/local
ln -s mysql-8.0.26-linux-glibc2.12-x86_64 mysql
# 配置数据库服务程序环境变量
cat >>/etc/profile<<'EOF'
export PATH=/usr/local/mysql/bin:$PATH
EOF
source /etc/profile
# 查看数据库版本
mysql -V
mysql Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
# 创建数据库服务管理用户信息
useradd mysql
# 创建数据库服务相关目录并进行目录信息进行授权
mkdir -p /data/3306/data /data/3306/logs
chown -R mysql. /data/
3) 初始化MySQL数据库服务操作
–非安全模式初始化
初始化之后可以免密登录,需要设置root密码
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
mysqld 核心程序命令
--initialize-insecure初始化核心参数(不安全初始化)
--user=mysql数据库管理用户
--basedir=/usr/local/mysql核心程序目录
--datadir=/data/3306/data数据存储目录
–安全模式初始化hh
初始化之后会产生一个随机密码,可以登录数据库,执行操作需要重设root密码
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
mysqld 核心程序命令
--initialize-insecure初始化核心参数(不安全初始化)
--user=mysql数据库管理用户
--basedir=/usr/local/mysql核心程序目录
--datadir=/data/3306/data数据存储目录
–不同数据库服务版本安装初始化差异说明:shsh
版本信息 | 命令信息 | 初始化操作参数 | 备注说明 |
---|---|---|---|
5.6 | mysql_install_db | 初始化的命令不一致,参数相同(无管理员密码) | |
5.7 8.0 | mysqld | –initialize-insecure | 表示不安全方式初始化(无管理员密码) |
–initialize | 表示安全方式初始化(有随机默认管理员密码) |
安全方式初始化特性:
将会生成临时密码(12位密码 需要满足4种复杂度),必须在首次登录数据库时改掉,才能正常管理数据库;
使用安全模式初始化数据库后,需要利用临时密码登录数据库服务,并设置管理员用户密码信息,如果不修改设置管理员用户密码,使用临时密码只是能登录数据库,但是无法管理数据库
4) 编写配置文件
# 创建数据库服务运行需要加载的my.cnf配置模板文件
cat > /etc/my.cnf <<'EOF'
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
EOF
5) 启动MySQL数据库服务脚本
# 查看数据库服务默认启动脚本文件
ls -l /usr/local/mysql/support-files/mysql.server
-rwxr-xr-x 1 7161 31415 10576 7月 1 2021 /usr/local/mysql/support-files/mysql.server
# 设置数据库服务程序启动运行文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 启动数据库服务程序利用脚本文件
/etc/init.d/mysqld start
service mysqld start
service mysqld stop
# 启动数据库服务程序利用脚本文件 (systemd方式)
systemctl enable mysqld
# 将service管理服务方式转换为systemd管理服务方式
systemctl start mysqld
systemctl is-active mysqld
# 设置开机自启动
[root@db01 /usr/local]# chkconfig --add mysqld
[root@db01 /usr/local]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
6) MySQL设置密码方法
命令行设置密码
mysqladmin password 'fxx123'
mysqladmin -uroot -p password 'fxx123'
在数据库中设置密码
alter user root@'localhost' identified by 'fxx123';
mysqladmin -uroot -pfxx123 password '123456'
alter user root@'localhost' identified by 'fxx123';
update mysql.user set authentication_string=PASSWORD('fxx123') where user='root' and host='localhost';
set password for 'root'@'localhost'=PASSWORD('fxx123');
修改密码
# 利用数据库服务命令修改密码信息
[root@db01 ~]# mysqladmin -uroot -pfxx123 password '123456'
-- 将原有fxx123密码 改为123456
# 进行测试登录
[root@db01 ~]# mysql -uroot -p123456
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql>
# 利用数据库服务SQL语句修改密码信息
mysql> alter user root@'localhost' identified by 'fxx123';
mysql> flush privileges;
-- 适合于mysql 8.0
mysql> update mysql.user set authentication_string=PASSWORD('fxx123') where user='root' and host='localhost';
mysql> flush privileges;
-- 适合于mysql 5.7
mysql> set password for 'root'@'localhost'=PASSWORD('fxx123');
mysql> flush privileges;
-- 适合于mysql 5.6
# 进行测试登录
[root@db01 ~]# mysql -uroot -pfxx123
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql>
端口
查看端口
[root@db01 /usr/local]# ss -lntul
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 70 [::]:33060 [::]:*
tcp LISTEN 0 128 [::]:3306 [::]:*
tcp LISTEN 0 128 [::]:22 [::]:*
关闭33060端口方法
cat >>/etc/my.cnf<<'EOF'
mysqlx=0
EOF
[root@db01 /usr/local]# systemctl restart mysqld.service
[root@db01 /usr/local]# ss -lntul
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:123 *:*
udp UNCONN 0 0 [::]:123 [::]:*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 128 [::]:3306 [::]:*
tcp LISTEN 0 128 [::]:22 [::]:*
特殊说明:在启动mysql数据库服务时,可能看到33060端口信息,此端口信息主要实现mysqlx协议的通讯过程;
利用mysqlx协议可以实现利用mysql-shell功能组件,对数据进行key-value操作,即识别json文件信息,进行远程管理;
7) 数据库关闭方式
在企业实际环境中,数据库服务的运行状态一般是不会进行随意调整的,在特殊场景下需要提前审批后,才能进行调整;
在企业实际环境中,在进行数据库服务关闭前,可以将业务先切换到备库(从库),再停止原有主库服务;
数据服务运行启动的进程信息查看:
[root@db01 ~]# ps -ef|grep mysqld
root 1384 1 0 09:00 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data --pid-file=/data/3306/data/db01.pid
-- 利用mysqld_safe脚本信息,可以满足定制修改的需求,设置一些灵活的变量信息,支持一些高级的启动功能
mysql 1635 1384 0 09:00 ? 00:00:03 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=db01.err --pid-file=/data/3306/data/db01.pid --socket=/tmp/mysql.sock
root 2063 1960 0 09:20 pts/0 00:00:00 grep --color=auto mysqld
-- 利用mysqld命令可以启动数据库服务,并显示启动的命令进程信息,但不能负责完成数据库服务的停止和重启操作
-- 利用mysqld命令可以启动数据库服务,有些服务功能是锁定死的,不能编辑改动(比如日志功能)
-- 利用mysqld_safe命令启动数据库服务,可以进行特殊功能信息配置,并且可以实现数据库维护性操作,还可以设置启停重启;
数据库服务除了应用脚本文件或命令进行关闭数据库服务之外,还可以进入到数据库服务中进行关闭服务:
mysql> shutdown;
或者
mysqladmin -uroot -p123456 shutdown