ubuntu18.03安裝mysql5.7雙實例

一:在系統上先安裝默認的實例

安裝master節點

apt update
apt install mysql-server -y

二:安裝第二個實例 (端口:3307)

1:創建實例存放的目錄

mkdir /data/mysql/3307 -p
mkdir /data/mysql/3307/conf -p
mkdir /data/mysql/3307/mysqldata -p

2:copy配置文件

cp /etc/mysql/mysql.conf.d/mysqld.cnf /data/mysql/3307/conf/3307.cnf

3:修改配置文件

vi /data/mysql/3307/conf/3307.cnf
socket          = /data/mysql/3307/mysqld.sock
pid-file          = /data/mysql/3307/mysqld.pid
socket          = /data/mysql/3307/mysqld.sock
port              = 3307
datadir         = /data/mysql/3307/mysqldata
log_error      = /data/mysql/3307/error.log

4:配置 apparmor

vi  /etc/apparmor.d/usr.sbin.mysqld
找到:# Allow data dir access 在其中添加以下內容
 /data/mysql/3307/ r,
 /data/mysql/3307/** rwk,
重啓apparmor服務
systemctl restart apparmor

5:配置權限

chown -R mysql:mysql /data/mysql/3307
find /data/mysql/3307 -type d | xargs chmod 755
find /data/mysql/3307 -type f | xargs chmod 644

6:初始化3307實例

mysqld --defaults-file=/data/mysql/3307/conf/3307.cnf --initialize --user=mysql --explicit_defaults_for_timestamp=1

7:初始化實例

7.1:無密碼啓動mysql3307實例

  mysqld_safe --defaults-file=/data/mysql/3307/conf/3307.cnf --skip-grant-tables &

7.2:登錄3307端口的實例

  mysql -uroot -S /data/mysql/3307/mysqld.sock

7.3:登錄後修改root密碼

 > USE mysql;
 > UPDATE user SET authentication_string=password('123456789');
 > FLUSH PRIVILEGES;
 > exit;
 注:登出一次再次登錄,執行下面的命令纔可以正常停止服務
 # mysql -uroot -S /data/mysql/3307/mysqld.sock
 > ALTER user user() IDENTIFIED by '123456789';

8:停止mysql3307實例

mysqladmin -uroot -p -S  /data/mysql/3307/mysqld.sock shutdown

9:啓動mysql3307實例

mysqld_safe --defaults-file=/data/mysql/3307/conf/3307.cnf  &
查看啓動是否正常
ps -ef|grep mysql|grep 3307
netstat -nltp|grep 3307
登錄實例:
mysql -uroot -S /data/mysql/3307/mysqld.sock -p

ubuntu18.03安裝mysql5.7雙實例

三:實現主從複製 (mysql主從搭建後默認同步所有庫)

1:在主庫上創建用於同步數據的賬戶

GRANT REPLICATION SLAVE ON *.* to 'cpuser'@'127.0.0.1' identified by 'CpPassw0rd';
FLUSH PRIVILEGES;

2:配置主庫: /etc/mysql/mysql.conf.d/mysqld.cnf

2.1:先備份一份文件:cp /etc/mysql/mysql.conf.d/mysqld.cnf{,.bak}

2.2:修改主庫配置文件

vi /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log

重啓master的mysql服務

2.3:查看bin_log是否開啓

show global variables like '%log_bin%';

注:---------------------------------------------
replicate-do-db 設定需要複製的數據庫
replicate-ignore-db 設定需要忽略的複製數據庫
replicate-do-table 設定需要複製的表
replicate-ignore-table 設定需要忽略的複製表



2.4:查看主庫的狀態

show master status;

ubuntu18.03安裝mysql5.7雙實例

3:從庫配置

3.1:修改配置文件:/data/mysql/3307/conf/3307.cnf

server-id = 2

3.2:然後執行下面的命令同步當前信息

change master to master_host='127.0.0.1', master_user='cpuser', master_password='CpPassw0rd',master_log_file='mysql-bin.000002', master_log_pos=154;

3.3:開啓同步

start slave;

3.4:查看主從同步情況

show slave status\G;
ubuntu18.03安裝mysql5.7雙實例

4:測試數據庫的同步

4.1:在上庫上創建一個數據庫,看從庫是否創建

create database test_1;

4.2:在主庫創建一個用戶,看從庫是否也會創建

grant all privileges on test_1.* to "testuser"@"%" identified by "12345678";
flush privileges;

4.3:在從節點上查看

mysql -u testuser -h 127.0.0.1 -S /data/mysql/3307/mysqld.sock -p

ubuntu18.03安裝mysql5.7雙實例

5:配置從庫只讀

set global read_only=1; # 設置普通賬號的只讀模式
set global read_only=0; # 取消普通賬號的只讀模式

GRANT all privileges ON . to 'cp'@'%' identified by '123456789';
FLUSH PRIVILEGES;

有數據的部分:
mysqldump -uroot -p --all-databases --lock-all-tables > master_db.sql

說明:
-u :用戶名
-p :示密碼
--all-databases :導出所有數據庫
--lock-all-tables :執行操作時鎖住所有表,防止操作時有數據修改
~/master_db.sql :導出的備份數據(sql文件)位置,可自己指定




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章