1 名稱解釋
mysqld: mysql的守護進程, 主要工作是存儲
mysqld_safe: 一般用它來啟動mysqld。並且監視mysqld的健康狀態,在mysqld由於某種錯誤中斷后重新啟用它
MySQL Utilities: 提供一組命令行工具用於維護和管理 MySQL 服務器
mysqladmin: 客戶端管理工具
Workbench: MySQL的圖形化管理工具
2 Mysqld啟動方式
2.1 mysqld 直接啟動
2.2 通過mysqld_safe 來啟動 mysqld
3 linux系統啟動Mysqld作為服務
3.1 service mysql start (兼容centos6, 需要些腳本)
3.2 systemctl start mysql (適用於systemd管理的liunx版本
3.3 通過mysqld_multi 啟動多個實例 (啟動簡單, 但關閉服務比較麻煩)
本次是用 service mysql start + mysqld_safe 來啟動多個實例。
啟動腳本是mysql安裝程序自帶的(但需要做些修改)
優點:
a 實例之間相互獨立;
b 啟動或關閉簡單;
c 按需啟動;
d 所有實例公用一個mysql安裝程序(主要3點差異: datadir, pid_file, socket);
e 不會對之前的mysqld進程有任何影響
## 參數假定
假定mysql安裝程序位於: /usr/local/mysql
數據保存於: /usr/local/mysql/data
當前配置文件: /etc/my.cnf
當前service啟動腳本: /etc/rc.d/init.d/mysql
## 目標
在3307端口新建另一個mysqld_safe啟動的mysqld進程
## 步驟
1 初始化配置文件
cp /etc/my.cnf /etc/my3307.cnf
修改:
[mysqld]
port = 3307
datadir = /usr/local/mysql/data3307
socket = /tmp/mysql3307.sock
2 初始化存儲目錄
mkdir /usr/local/mysql/data3307
mysqld --defaults-file=/etc/my3307.cnf --initilize (記下初始的root密碼)
3 初始化啟動腳本
cp /etc/rc.d/init.d/mysql /etc/rc.d/init.d/mysql7
修改:
3.1 在basedir= 上面一行增加
port=3307
conf_file=/etc/my3307.cnf
socket=
3.2 lock_file_path="$lockdir/mysql3307"
3.3 parse_server_arguments函數: 增加
--socket=*)
socket=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
3.4 啟動命令改為:
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" --port="${port}" --socket="${socket}" $other_args >/dev/null &
## 測試
service mysql7 start
service mysql7 status
ps aux | grep 'mysql' 可以看到多個mysqld_safe和mysqld進程
service mysql7 stop
## 連接
mysql -h127.0.0.1 (需帶上ip, 不然默認使用socket連接)