Mysql5.7.18的安裝與主從復(fù)制圖文詳解
CentOS6.7安裝mysql5.7.18
1、 解壓到/usr/local目錄
# tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local
2、 mysql-5.7.18-linux-glibc2.5-i686文件夾重命名為mysql
# cd /usr/local # mv mysql-5.7.18-linux-glibc2.5-i686/ mysql
3、 新建mysql用戶組和mysql用戶
# groupadd mysql # useradd -r -g mysql mysql
4、 新建數(shù)據(jù)目錄
# cd /usr/local/mysql # mkdir data
5、 更改所有者以及授權(quán)755
# cd /usr/local # chown -R mysql:mysql mysql/ # chmod -R 755 mysql/
6、 初始化mysqld
# cd /usr/local/mysql # ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
記錄下root的初始密碼: GjlI08>p4kDw
7、 將mysqld添加成服務(wù),并啟動(dòng)它
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
建立mysql默認(rèn)的配置文件/etc/my.cnf,并添加圖片中內(nèi)容
# vim /etc/my.cnf
保存并退出my.cnf,啟動(dòng)mysqld
# service mysqld start
出現(xiàn)如下信息表示啟動(dòng)成功
查看mysql是否啟動(dòng)成功
# ps -ef|grep mysql
出現(xiàn)如下信息表示啟動(dòng)成功
當(dāng)然也可以查看mysqld的狀態(tài)
# service mysqld status
8、 登錄mysql并修改root密碼
# cd /usr/local/mysql # ./bin/mysql -uroot –p
輸入初始密碼,步驟6中有生成,出現(xiàn)如下信息表示登錄成功
修改root密碼
mysql> SET PASSWORD = PASSWORD('123456'); mysql> FLUSH PRIVILEGES;
初次登錄沒有修改root的密碼,操作數(shù)據(jù)庫(kù)會(huì)出現(xiàn)如下錯(cuò)誤提示,那么需要修改root用戶的密碼
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
9、 設(shè)置mysql遠(yuǎn)程可訪問(前提是防火墻必須關(guān)閉,chkconfig iptables off:設(shè)置自動(dòng)啟動(dòng)為關(guān)閉,service iptables sto:關(guān)閉防火墻)
先登錄到mysql
mysql> use mysql mysql> update user set host = '192.168.0.4' where user = 'root'; mysql> FLUSH PRIVILEGES;
192.168.0.4即是可遠(yuǎn)程訪問本地mysql的遠(yuǎn)程ip,若想任意ip都能訪問本地mysql,那么只需要將192.168.0.4換成%即可
mysql> update user set host = '%' where user = 'root';
mysql主從復(fù)制
windows上mysql做master,linux上mysql做slave,mysql版本是5.7.18;windows的ip為192.168.0.4,linux的ip為192.168.0.223
1、master上開啟binlog日志
在mysql的home目錄找到my.ini文件(沒有則新建),配置上如下內(nèi)容
[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 #[必須]啟用二進(jìn)制日志 server-id = 4 #[必須]服務(wù)器唯一ID,默認(rèn)是1,最好取ip的后3位 expire-logs-days = 7 #只保留7天的二進(jìn)制日志,以防磁盤被日志占滿 binlog-ignore-db = mysql #不備份的數(shù)據(jù)庫(kù) binlog-ignore-db = information_schema binlog-ignore-db = performation_schema binlog-ignore-db = sys binlog-do-db=mybatis #需要做復(fù)制的數(shù)據(jù)庫(kù)名
測(cè)試log_bin是否成功開啟
mysql> show variables like '%log_bin%';
出現(xiàn)下圖,log_bin為ON則表示開啟成功,OFF表示開啟失敗
2、master的數(shù)據(jù)庫(kù)中建立備份賬號(hào):backup為用戶名,%表示任何遠(yuǎn)程地址,如下表示密碼為1234的任何遠(yuǎn)程地址的backup都可以連接master主機(jī)
mysql> grant replication slave on *.* to 'backup'@'%' identified by '1234'; mysql> use mysql mysql> select user,authentication_string,host from user;
可看到我們剛創(chuàng)建的備份賬號(hào):
3、拷貝數(shù)據(jù)
重啟MySQL服務(wù)并設(shè)置讀取鎖定
net stop MySQL net start MySQL
登錄mysql
mysql> flush tables with read lock;
讀取鎖定的意思是只能讀取,不能更新,以便獲得一個(gè)一致性的快照
查看主服務(wù)器上當(dāng)前的二進(jìn)制日志名和偏移量值
mysql> show master status \G
復(fù)制的過程如下:
File表示實(shí)現(xiàn)復(fù)制功能的日志,即上圖中的Binary log;Position則表示binlog日志文件的偏移量之后的都會(huì)同步到slave中,那么在偏移量之前的則需要我們手動(dòng)導(dǎo)入
從master導(dǎo)出數(shù)據(jù),然后導(dǎo)入到slave中
另外開一個(gè)命令窗口,用mysqldump命令進(jìn)行數(shù)據(jù)的導(dǎo)出
將d:\a.txt拷貝到slave上,然后導(dǎo)入到mysql數(shù)據(jù)庫(kù)中,slave上的mybatis數(shù)據(jù)庫(kù)不存在則先創(chuàng)建,然后再導(dǎo)入
導(dǎo)出是mysqldump,導(dǎo)入是mysql
4、配置slave(192.168.0.223)
slave是linux環(huán)境,mysql的配置文件是/etc/my.cnf,不存在則新建,配上如下內(nèi)容
[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
重啟slave數(shù)據(jù)庫(kù)
# service mysqld restart
登錄slave數(shù)據(jù)庫(kù),并做如下設(shè)置
mysql> stop slave;
mysql> change master to
master_host='192.168.0.4',
master_user='backup',
master_password='1234',
master_log_file='mysql-bin.000005',
master_log_pos=601;
各個(gè)參數(shù)含義:
master_host 實(shí)現(xiàn)復(fù)制的主機(jī)的IP地址
master_user 實(shí)現(xiàn)復(fù)制的遠(yuǎn)程登錄master的mysql的用戶,在步驟2有設(shè)置
master_password 實(shí)現(xiàn)復(fù)制的遠(yuǎn)程登錄master的mysql的面,在步驟2有設(shè)置
master_log_file 實(shí)現(xiàn)復(fù)制的binlog日志文件 在步驟3標(biāo)紅的框框中
master_log_pos 實(shí)現(xiàn)復(fù)制的binlog日志文件的偏移量 在步驟3標(biāo)紅的框框中
mysql> start slave;
查看slave從機(jī)的狀態(tài)
mysql> show slave status \G
若圖中標(biāo)記的那兩項(xiàng)的值為Yes,則表示slave設(shè)置成功
5、關(guān)閉掉主數(shù)據(jù)庫(kù)的讀取鎖定
mysql> unlock tables;
6、測(cè)試
前面沒出問題的話,那么master上的mybatis數(shù)據(jù)的操作都會(huì)同步到slave的mybatis上
文檔地址:點(diǎn)這里
總結(jié)
以上所述是小編給大家介紹的Mysql5.7.18的安裝與主從復(fù)制圖文詳解,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
Ubuntu下取消MySQL數(shù)據(jù)庫(kù)本機(jī)綁定限制方法
在Ubuntu系統(tǒng)中,添加了MySQL賬戶,賦予了數(shù)據(jù)庫(kù)完全操作權(quán)限,并且允許數(shù)據(jù)庫(kù)從外部鏈接 但是,還是無(wú)法遠(yuǎn)程訪問MySQL數(shù)據(jù)庫(kù)2013-06-06Mysql查詢語(yǔ)句如何實(shí)現(xiàn)無(wú)限層次父子關(guān)系查詢
這篇文章主要介紹了Mysql查詢語(yǔ)句如何實(shí)現(xiàn)無(wú)限層次父子關(guān)系查詢問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07MYSQL突破secure_file_priv寫shell問題
這篇文章主要介紹了MYSQL突破secure_file_priv寫shell問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01mysql實(shí)現(xiàn)數(shù)據(jù)文件存儲(chǔ)到指定分區(qū)的示例代碼
MySQL中可以使用分區(qū)表來提高數(shù)據(jù)檢索速度,本文主要介紹了mysql實(shí)現(xiàn)數(shù)據(jù)文件存儲(chǔ)到指定分區(qū)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01詳解如何利用Xtrabackup進(jìn)行mysql增量備份
這篇文章主要為大家介紹了如何利用Xtrabackup進(jìn)行mysql增量備份詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10如何使用mysqladmin獲取一個(gè)mysql實(shí)例當(dāng)前的TPS和QPS
這篇文章主要介紹了如何使用mysqladmin這個(gè)工具來獲取一個(gè)mysql實(shí)例當(dāng)前的TPS和QPS,幫助大家更好的管理數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-11-11MySQL之使用UNION和UNION ALL合并兩個(gè)或多個(gè)SELECT語(yǔ)句的結(jié)果集
這篇文章主要介紹了MySQL之使用UNION和UNION ALL合并兩個(gè)或多個(gè)SELECT語(yǔ)句的結(jié)果集,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04一篇文章帶你了解MySQL數(shù)據(jù)庫(kù)約束
數(shù)據(jù)庫(kù)中要管理很多數(shù)據(jù),但是這些數(shù)據(jù)是否正確、是否非法,光靠人力來檢驗(yàn)是遠(yuǎn)遠(yuǎn)不夠的,因此我們想讓數(shù)據(jù)庫(kù)擁有豐富的檢驗(yàn)和校驗(yàn)?zāi)芰?所以便引入了約束,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)約束的相關(guān)資料,需要的朋友可以參考下2023-06-06