1. 數據庫服務應用配置
服務進行配置有什么作用?
?????????實現服務運行啟動
? ? ? ? ?實現某些功能
應用配置有三種方式?
? ? ? ? 利用編譯安裝進行配置
? ? ? ? 編寫配置文件信息 ,.默認的配置文件: /etc/my.cnf
? ? ? ? 利用啟動命令參數配置信息,mysqld_safe --skip-grant-tables --skip-networking &
#配置文件內容 有[]的部分表示對客戶端或者服務端的配置區域
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
port=3306
socket=/tmp/mysql.sock[client]
socket=/tmp/mysql.sock
?啟動數據庫服務為什么會有兩個進程信息?
一個是 mysqld_safe
一個是 mysqld
知識點補充:數據庫服務啟動與關閉管理
mysqld_safe? ?父進程,接受任務信息
mysqld? ? ? ? ? ? 子進程,處理任務信息,核心
?2. 數據庫服務實例創建
1. 在數據庫服務運行中,可以存在多實例運行的概念,什么是數據庫服務的多實例呢?
一般在一個系統環境中,可以運行多個相同的服務程序信息,并且產生不同的進程和網絡端口信息,就可以成為多實例概念。
2. 多實例的作用?
充分利用硬件資源
?2.1 實戰多實例
## 1. 環境部署準備
##創建數據目錄
mkdir -p /data/330{7..9}/data
chown -R mysql. /data/## 2. 進行不同實例的初始化
##將默認的配置文件改名或者移走
mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data## 3. 編寫配置文件
vim /data/3307/data/my.cnf
[mysql]
socket=/tmp/mysql3307.sock
[mysqld]
user=mysql
port=3307
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/tmp/mysql3307.sockvim /data/3308/data/my.cnf
[mysql]
socket=/tmp/mysql3308.sock
[mysqld]
user=mysql
port=3308
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/tmp/mysql3308.sockvim /data/3309/data/my.cnf
[mysql]
socket=/tmp/mysql3309.sock
[mysqld]
user=mysql
port=3309
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/tmp/mysql3309.sockmysqld_safe --defaults-file=/data/3307/data/my.cnf &
mysqld_safe --defaults-file=/data/3308/data/my.cnf &
mysqld_safe --defaults-file=/data/3309/data/my.cnf &## 4. 檢查端口是否成功
## 5. 指定套接字文件登錄
mysql -S /tmp/mysql3307.sock ##登錄
select @@port; ##sql語句查看端口
?3. 數據庫服務版本升級
實現程序功能升級,升級過程中:不能影響數據信息,不能影響業務使用
實現升級的方法:
? ? ? ? 本地升級:單臺服務器升級
? ? ? ? 遷移升級:多臺服務器升級? ?-- 主從結構
注意事項:
先進行小版本升級,在進行大版本升級
3.1 數據庫升級實戰(5.6---->5.7)?
## 0. 準備環境
systemctl start mysql56 ##啟動5.6數據庫
## 創建測試數據
create database oldboy;
create table stu (name varchar(10),age int,gender char(1));
insert into stu values ('oldboy',20,'m');
select * from stu;## 1. 數據庫舊版服務關閉
systemctl stop mysql56.service ## 2. 數據庫服務最新程序啟動
## 實現掛庫信息配置。 然后跳過授權表和網絡的方式啟動,新程序加載舊數據
vim /etc/my57.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql57
datadir=/data/3356/data ##修改為舊版的數據目錄
socket=/tmp/mysql.sock##啟動新版數據庫/usr/local/mysql57/bin/mysqld_safe --defaults-file=/etc/my57.cnf --skip-grant-tables --skip-networking &## 3. 進入數據庫查看數據
select * from oldboy.stu;
## 4. 數據庫服務升級數據結構
/usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql.sock --force
3.2 數據庫升級實戰(5.7------>8.0)
## 1. 數據庫最新程序安裝
## 2. 舊版數據庫服務關閉
systemctl stop mysql57
## 3. 新版數據庫服務啟動
## 實現掛庫信息配置。 然后跳過授權表和網絡的方式啟動,新程序加載舊數據
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3356/data ##舊版本的數據目錄
socket=/tmp/mysql.sock## 啟動新版數據庫
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables --skip-networking &## 查看數據是否丟失
mysql
select * from oldboy.stu;