1. 程式人生 > >MYSQL之一主多從搭建方案

MYSQL之一主多從搭建方案

# 安裝前必須刪除原來的安裝,需要檢查 以下檔案是否存在 ,如果存在則要刪除
# /etc/my.cnf
# /etc/init.d/mysqld
# 新增mysql依賴庫
shell> yum search libaio # search for info
shell> yum install libaio # install library
# 建立mysql 與使用者組,-s /bin/false 表示該使用者不能登入
shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql # 建立安裝目錄(後面會用到,隨意命名即可) shell> mkdir -p package shell> cd package shell> pwd /package # 解壓安裝包至當前目錄並給定軟連線 shell> tar zxvf mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz shell> ln -s mysql-5.5.60-linux-glibc2.12-x86_64 mysql shell> cd mysql # 為 mysql 使用者新增許可權
shell> chown -R mysql ./ shell> chgrp -R mysql ./ # 建立data目錄並新增許可權 shell> mkdir -p /data/mysql shell> chown -R mysql:mysql /data/mysql # 拷貝配置檔案 shell> cp support-files/my-medium.cnf /etc/my.cnf shell> cp support-files/mysql.server /etc/init.d/mysqll # 修改配置 shell> vi /etc/my.cnf # 新增或修改以下內容即可
[mysqld] basedir=/package/mysql #mysql解壓目錄 datadir=/data/mysql #mysql資料檔案目錄 character-set-server=utf8 #字符集 # 初始化mysql資料庫 shell> ./scripts/mysql_install_db --user=mysql --basedir=/package/mysql --datadir=/data/mysql # 新增環境變數(檔案最後一行,新增一行新增即可) shell> vi /etc/profile PATH=/home/cbt/svr/mysql/bin:$PATH export PATH # 環境變數立即生效 shell> source /etc/profile # 啟動資料庫 shell> service mysql start # 開機啟動 shell> chkconfig mysqld on # 初始化mysql的一些設定 shell> mysql_secure_installation #回車 Enter current password for root (enter for none): #y,設定mysql的root密碼 Set root password?[Y/n] y #以下都yes Remove anonymous users?[Y/n] y Disallow root login remotely?[Y/n] y Remove test database and access to it?[Y/n] y Reload privilege tables now?[Y/n] y ThanksforusingMySQL! # 允許遠端登陸 mysql>use mysql; mysql>select host,user,password from user; mysql>update user set password=password('123456') where user='root'; mysql>update user set host='%' where user='root' and host='localhost'; mysql>flush privileges; # 安裝時的一些錯誤 -bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: 沒有那個檔案或目錄 解決: yum -y install perl perl-devel Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解決:yum -y install libaio-devel #################### 一主多從配置 #################### master my.cnf 配置----- shell> vi /etc/my.cnf # binlog 格式 binlog-format=ROW log-bin=mysql-master-bin # slave更新時是否記錄到日誌中; log-slave-updates=true # 開啟半同步 rpl_semi_sync_master_enabled=ON # 需要同步的二進位制資料庫名; binlog-do-db=health #需要同步的資料庫 # 不同步的二進位制資料庫名,如果不設定可以將其註釋掉; binlog-ignore-db=information_schema #不需要同步的資料庫 binlog-ignore-db=mysql binlog-ignore-db=personalsite binlog-ignore-db=test # 儲存並重啟mysql服務 shell> service mysql restart # 登陸資料庫 shell> mysql -uroot -p123456 # 建立使用者用於主從同步的資料庫 mysql>grant replication slave,super,reload on *.* to [email protected]192.168.153.12 identified by '123456'; # 檢視主節點狀態 mysql>show master status # 在主庫上檢視已連線的slave主機 mysql>show slave hosts; # 檢視所有binlog日誌 mysql>show binary logs; # 檢視所有binlog 事件 mysql>show binlog events in 'mysql-bin.000003'; # slave my.cnf 配置----- server-id = 2 log-bin=mysql-slave-bin binlog-do-db=health #需要同步的資料庫 binlog-ignore-db=information_schema #不需要需要同步的資料庫 binlog-ignore-db=mysql binlog-ignore-db=personalsite binlog-ignore-db=test # 儲存並重啟slave節點mysql服務 shell> service mysql restart # 登陸slave伺服器mysql資料庫 shell> mysql -uroot -p123456 # slave節點修改master配置 mysql>change master to master_host='192.168.153.11', master_user='slave1', master_password='123456'; # Slave 相關操作 # 啟動暫停slave mysql>start slave; mysql>stop slave; # 檢視 slave 狀態 mysql>show slave status \G;

這裡寫圖片描述