《Mysql學習Mysql5.7.18的安裝與主從復(fù)制圖文詳解》要點:
本文介紹了Mysql學習Mysql5.7.18的安裝與主從復(fù)制圖文詳解,希望對您有用。如果有疑問,可以聯(lián)系我們。
MYSQL實例CentOS6.7安裝mysql5.7.18
MYSQL實例
MYSQL實例 1、? 解壓到/usr/local目錄
MYSQL實例
# tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local
MYSQL實例 2、? mysql-5.7.18-linux-glibc2.5-i686文件夾重命名為mysql
MYSQL實例
# cd /usr/local
# mv mysql-5.7.18-linux-glibc2.5-i686/ mysql
MYSQL實例 3、? 新建mysql用戶組和mysql用戶
MYSQL實例
# groupadd mysql
# useradd -r -g mysql mysql
MYSQL實例 4、? 新建數(shù)據(jù)目錄
MYSQL實例
# cd /usr/local/mysql
# mkdir data
MYSQL實例 5、? 更改所有者以及授權(quán)755
MYSQL實例
# cd /usr/local
# chown -R mysql:mysql mysql/
# chmod -R 755 mysql/
MYSQL實例 6、? 初始化mysqld
MYSQL實例
# cd /usr/local/mysql
# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
MYSQL實例
MYSQL實例 記錄下root的初始密碼: GjlI08>p4kDw
MYSQL實例 7、? 將mysqld添加成服務(wù),并啟動它
MYSQL實例
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
MYSQL實例 建立mysql默認的配置文件/etc/my.cnf,并添加圖片中內(nèi)容
MYSQL實例
MYSQL實例 # vim /etc/my.cnf
MYSQL實例 保存并退出my.cnf,啟動mysqld
MYSQL實例 # service mysqld start
MYSQL實例 出現(xiàn)如下信息表示啟動成功
MYSQL實例
MYSQL實例 查看mysql是否啟動成功
MYSQL實例 # ps -ef|grep mysql
MYSQL實例 出現(xiàn)如下信息表示啟動成功
MYSQL實例
MYSQL實例 當然也可以查看mysqld的狀態(tài)
MYSQL實例 # service mysqld status
MYSQL實例
MYSQL實例 8、? 登錄mysql并修改root密碼
MYSQL實例
# cd /usr/local/mysql
# ./bin/mysql -uroot Cp
MYSQL實例 輸入初始密碼,步驟6中有生成,出現(xiàn)如下信息表示登錄成功
MYSQL實例
MYSQL實例 修改root密碼
MYSQL實例
mysql> SET PASSWORD = PASSWORD('123456');
mysql> FLUSH PRIVILEGES;
MYSQL實例 初次登錄沒有修改root的密碼,操作數(shù)據(jù)庫會出現(xiàn)如下錯誤提示,那么需要修改root用戶的密碼
MYSQL實例 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
MYSQL實例 9、? 設(shè)置mysql遠程可訪問(前提是防火墻必須關(guān)閉,chkconfig iptables off:設(shè)置自動啟動為關(guān)閉,service iptables sto:關(guān)閉防火墻)
MYSQL實例 先登錄到mysql
MYSQL實例
mysql> use mysql
mysql> update user set host = '192.168.0.4' where user = 'root';
mysql> FLUSH PRIVILEGES;
MYSQL實例 192.168.0.4即是可遠程訪問本地mysql的遠程ip,若想任意ip都能訪問本地mysql,那么只需要將192.168.0.4換成%即可
MYSQL實例
mysql> update user set host = '%' where user = 'root';
MYSQL實例mysql主從復(fù)制
MYSQL實例 windows上mysql做master,linux上mysql做slave,mysql版本是5.7.18;windows的ip為192.168.0.4,linux的ip為192.168.0.223
MYSQL實例 1、master上開啟binlog日志
MYSQL實例?????? 在mysql的home目錄找到my.ini文件(沒有則新建),配置上如下內(nèi)容
MYSQL實例
[mysqld]
# set basedir to your installation path
basedir=D:\\mysql-5.7.18
# set datadir to the location of your data directory
datadir=D:\\mysql-5.7.18\\data
port = 3306
log-bin = mysql-bin #[必須]啟用二進制日志
server-id = 4 #[必須]服務(wù)器唯一ID,默認是1,最好取ip的后3位
expire-logs-days = 7 #只保留7天的二進制日志,以防磁盤被日志占滿
binlog-ignore-db = mysql #不備份的數(shù)據(jù)庫
binlog-ignore-db = information_schema
binlog-ignore-db = performation_schema
binlog-ignore-db = sys
binlog-do-db=mybatis #需要做復(fù)制的數(shù)據(jù)庫名
MYSQL實例?????? 測試log_bin是否成功開啟
MYSQL實例????? mysql> show variables like '%log_bin%';
MYSQL實例?????? 出現(xiàn)下圖,log_bin為ON則表示開啟成功,OFF表示開啟失敗
MYSQL實例?
MYSQL實例 2、master的數(shù)據(jù)庫中建立備份賬號:backup為用戶名,%表示任何遠程地址,如下表示密碼為1234的任何遠程地址的backup都可以連接master主機
MYSQL實例
mysql> grant replication slave on *.* to 'backup'@'%' identified by '1234';
mysql> use mysql
mysql> select user,authentication_string,host from user;
MYSQL實例 可看到我們剛創(chuàng)建的備份賬號:
MYSQL實例
MYSQL實例 3、拷貝數(shù)據(jù)
MYSQL實例?????? 重啟MySQL服務(wù)并設(shè)置讀取鎖定
MYSQL實例
net stop MySQL
net start MySQL
MYSQL實例 登錄mysql
MYSQL實例
mysql> flush tables with read lock;
MYSQL實例 讀取鎖定的意思是只能讀取,不能更新,以便獲得一個一致性的快照
MYSQL實例 查看主服務(wù)器上當前的二進制日志名和偏移量值??
MYSQL實例
mysql> show master status \G
MYSQL實例
MYSQL實例復(fù)制的過程如下:
MYSQL實例
MYSQL實例 File表示實現(xiàn)復(fù)制功能的日志,即上圖中的Binary log;Position則表示binlog日志文件的偏移量之后的都會同步到slave中,那么在偏移量之前的則需要我們手動導(dǎo)入
MYSQL實例????? 從master導(dǎo)出數(shù)據(jù),然后導(dǎo)入到slave中
MYSQL實例????????????? 另外開一個命令窗口,用mysqldump命令進行數(shù)據(jù)的導(dǎo)出
MYSQL實例
MYSQL實例 將d:\a.txt拷貝到slave上,然后導(dǎo)入到mysql數(shù)據(jù)庫中,slave上的mybatis數(shù)據(jù)庫不存在則先創(chuàng)建,然后再導(dǎo)入
MYSQL實例
MYSQL實例 導(dǎo)出是mysqldump,導(dǎo)入是mysql
MYSQL實例 4、配置slave(192.168.0.223)
MYSQL實例?????? slave是linux環(huán)境,mysql的配置文件是/etc/my.cnf,不存在則新建,配上如下內(nèi)容
MYSQL實例
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306
log-bin=mysql-bin
server-id=223
MYSQL實例????? 重啟slave數(shù)據(jù)庫
MYSQL實例
# service mysqld restart
MYSQL實例????? 登錄slave數(shù)據(jù)庫,并做如下設(shè)置
MYSQL實例 mysql> stop slave;
MYSQL實例 mysql> change master to
MYSQL實例???????????????? master_host='192.168.0.4',
MYSQL實例???????????????? master_user='backup',
MYSQL實例???????????????? master_password='1234',
MYSQL實例????????????????? master_log_file='mysql-bin.000005',
MYSQL實例???????????????? master_log_pos=601;
MYSQL實例????????????? 各個參數(shù)含義:
MYSQL實例???????????? master_host 實現(xiàn)復(fù)制的主機的IP地址
MYSQL實例????????????? master_user 實現(xiàn)復(fù)制的遠程登錄master的mysql的用戶,在步驟2有設(shè)置
MYSQL實例???????????? master_password 實現(xiàn)復(fù)制的遠程登錄master的mysql的面,在步驟2有設(shè)置
MYSQL實例???????????? master_log_file 實現(xiàn)復(fù)制的binlog日志文件 在步驟3標紅的框框中
MYSQL實例????????????? master_log_pos 實現(xiàn)復(fù)制的binlog日志文件的偏移量 在步驟3標紅的框框中
MYSQL實例 mysql> start slave;
MYSQL實例 查看slave從機的狀態(tài)
MYSQL實例????????????? mysql> show slave status \G
MYSQL實例
MYSQL實例
MYSQL實例 若圖中標記的那兩項的值為Yes,則表示slave設(shè)置成功
MYSQL實例 5、關(guān)閉掉主數(shù)據(jù)庫的讀取鎖定?????
MYSQL實例
mysql> unlock tables;
MYSQL實例 6、測試
MYSQL實例 前面沒出問題的話,那么master上的mybatis數(shù)據(jù)的操作都會同步到slave的mybatis上
MYSQL實例文檔地址:點這里
MYSQL實例總結(jié)
MYSQL實例以上所述是小編給大家介紹的Mysql5.7.18的安裝與主從復(fù)制圖文詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4916.html