標籤:mysql local
系統:centos 6.5 mysql版本5.6.30
mysql段
雙機互信 192.168.0.31
ssh-keygen -t rsa -P ‘‘
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
雙機互信 192.168.0.30
ssh-keygen -t rsa -P ‘‘
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
兩台機器都需要安裝如下配置,完全一樣就行
yum -y install cmake
tar xf mysql-5.6.30.tar.gz
cd mysql-5.6.30
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysqldata/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all
make -j 2 && make -j 2 install
mkdir /mydata/data -pv
建立Mysql使用者
groupadd -g 3030 mysql
useradd -u 3030 -g 3030 -r -s /sbin/nologin mysql
chown mysql.mysql /mydata/data -R
chown mysql.mysql /usr/local/mysql/* -R
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile.d/mysql.sh
vim /etc/man.config更新Man檔案,48行加
MANPATH /usr/local/mysql/man
mv /etc/my.cnf{,.bak}
cd /usr/local/mysql進入mysql安裝目錄中複製設定檔開機檔案
cp support-files/my-default.cnf /etc/my.cnf
啟動設定檔,如果有Ha可不需要開機中啟動服務
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig mysqld on
配置my.cnf檔案
vim /etc/my.cnf
[mysqld]添加如下內容
basedir = /usr/local/mysql
datadir = /mydata/data
port = 3306
socket = /tmp/mysql/mysql.sock
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/mydata/data/初始化配置
[[email protected] mysql]# mysql
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
配置啟動完成後出現如下錯誤設定檔時有指定mysql.sock檔案目錄 然後
mkdir /var/lib/mysql 如果mysql.sock不在tmp檔案中,find / -name mysql.sock
ln -sv /tmp/mysql/mysql.sock /var/lib/mysql/mysql.sock
簡單主從配置 :
主伺服器
先配置log_bin日誌 開啟二進位日誌
log_bin = /mysql/master/masterbin
binlog_format = mixed
server_id = 111
開啟許可權
grant all on *.* to ‘master‘@‘192.168.0.%‘ identified by ‘masterss‘
show master status;
從伺服器
配置relay_bin日誌 開啟中繼日誌
relay_log = /mysql/relay/relay_log
binlog_format = mixed 格式為混雜模式
server_id = 222 server id主從需不從
先測試從伺服器是否能串連主伺服器 mysql -u master -h 192.168.0.x -pmasterss
能則繼續,不能請檢查iptables跟selinux是否開啟,開啟請關閉或者允許存取3306連接埠
進入Mysql中定義主伺服器配置 user是主伺服器中定義的,logfile必須跟主伺服器保持一致,查詢方式 show master logs;
change master to master_user=‘192.168.0.x‘,master_user=‘master‘,master_password=‘masterss‘,master_log_file=‘masterbin.000003‘,master_log_pos=120;
start slave ;開啟slave
show slave status; 以下兩個必須是yes,如有同步io錯誤請檢查 log_file跟log_pos這兩個必須跟主伺服器日誌保持一樣
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
然後檢查是否成功,主伺服器中建立一個資料庫 create database xxtest;
從伺服器中使用 show databases; 查詢能查詢到資料庫表示已經建立成功,如果沒有請重新檢查slave status
定義指令碼監控slave是否正常
#!/bin/bash
Status=`mysql -uroot -pxiongge -e ‘show slave status\G‘ | grep "Slave_IO_Running" | awk -F: ‘{print $NF}‘ | sed ‘s/ \(Yes\)/\1/‘`
if [ $Status != "Yes" ]; then
echo "這裡可以定義郵箱" #如果有sendmail可以直接mail ..xxx.com.
else
echo "123" &>/dev/null
fi
兩個狀態將grep更改一下就成,寫兩個指令碼更佳、然後在crontab中定義一下計劃任務,為no發送郵件、yesi輸出資訊
crontab -e
每分鐘監控 */1 * * * * xx/xx.sh
本文出自 “xiong” 部落格,轉載請與作者聯絡!
mysql 5.6.30