mysql5.7.18的安裝與主從複製

CentOS6.7安裝mysql5.7.18

  

  一、  解壓到/usr/local目錄mysql

    # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/locallinux

  二、  mysql-5.7.18-linux-glibc2.5-i686文件夾重命名爲mysqlgit

    # cd /usr/localgithub

    # mv mysql-5.7.18-linux-glibc2.5-i686/ mysqlweb

  三、  新建mysql用戶組和mysql用戶sql

    # groupadd mysql數據庫

    # useradd -r -g mysql mysqlvim

  四、  新建數據目錄windows

    # cd /usr/local/mysql服務器

    # mkdir data

  五、  更改全部者以及受權755

    # cd /usr/local

    # chown -R mysql:mysql mysql/

    # chmod -R 755 mysql/

  六、  初始化mysqld

    # cd /usr/local/mysql

    # ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

     

    記錄下root的初始密碼: GjlI08>p4kDw

  七、  將mysqld添加成服務,並啓動它

    # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    創建mysql默認的配置文件/etc/my.cnf,並添加圖片中內容

    

    # vim /etc/my.cnf

    保存並退出my.cnf,啓動mysqld

    # service mysqld start

    出現以下信息表示啓動成功

     

    查看mysql是否啓動成功

    # ps -ef|grep mysql

    出現以下信息表示啓動成功

     

    固然也能夠查看mysqld的狀態

    # service mysqld status

     

  八、  登陸mysql並修改root密碼

    # cd /usr/local/mysql

    # ./bin/mysql -uroot –p

    輸入初始密碼,步驟6中有生成,出現以下信息表示登陸成功

     

    修改root密碼

    mysql> SET PASSWORD = PASSWORD('123456');

    mysql> FLUSH PRIVILEGES;

    初次登陸沒有修改root的密碼,操做數據庫會出現以下錯誤提示,那麼須要修改root用戶的密碼

      ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

  九、  設置mysql遠程可訪問(前提是防火牆必須關閉,chkconfig iptables off:設置自動啓動爲關閉,service iptables stop:關閉防火牆)

    先登陸到mysql

    mysql> use mysql

    mysql> update user set host = '192.168.0.4' where user = 'root';

    mysql> FLUSH PRIVILEGES;

    192.168.0.4便是可遠程訪問本地mysql的遠程ip,若想任意ip都能訪問本地mysql,那麼只須要將192.168.0.4換成%便可

    mysql> update user set host = '%' where user = 'root';

mysql主從複製

  windows上mysql作master,linux上mysql作slave,mysql版本是5.7.18;windows的ip爲192.168.0.4,linux的ip爲192.168.0.223

  一、master上開啓binlog日誌

         在mysql的home目錄找到my.ini文件(沒有則新建),配置上以下內容

[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 #[必須]服務器惟一ID,默認是1,最好取ip的後3位 expire-logs-days = 7 #只保留7天的二進制日誌,以防磁盤被日誌佔滿 binlog-ignore-db = mysql #不備份的數據庫 binlog-ignore-db = information_schema binlog-ignore-db = performation_schema binlog-ignore-db = sys binlog-do-db=mybatis #須要作複製的數據庫名

         測試log_bin是否成功開啓

         mysql> show variables like '%log_bin%';

         出現下圖,log_bin爲ON則表示開啓成功,OFF表示開啓失敗

           

  二、master的數據庫中創建備份帳號:backup爲用戶名,%表示任何遠程地址,以下表示密碼爲1234的任何遠程地址的backup均可以鏈接master主機

    mysql> grant replication slave on *.* to 'backup'@'%' identified by '1234';

    mysql> use mysql

    mysql> select user,authentication_string,host from user;

    可看到咱們剛建立的備份帳號:

     

  三、拷貝數據

         重啓MySQL服務並設置讀取鎖定

      net stop MySQL

      net start MySQL

      登陸mysql

           mysql> flush tables with read lock;

    讀取鎖定的意思是隻能讀取,不能更新,以便得到一個一致性的快照

    查看主服務器上當前的二進制日誌名和偏移量值   

    mysql> show master status \G

     

    複製的過程以下:

     

    File表示實現複製功能的日誌,即上圖中的Binary log;Position則表示binlog日誌文件的偏移量以後的都會同步到slave中,那麼在偏移量以前的則須要咱們手動導入

         從master導出數據,而後導入到slave中

                另外開一個命令窗口,用mysqldump命令進行數據的導出

       

      將d:\a.txt拷貝到slave上,而後導入到mysql數據庫中,slave上的mybatis數據庫不存在則先建立,而後再導入

       

      導出是mysqldump,導入是mysql

  四、配置slave(192.168.0.223)

         slave是linux環境,mysql的配置文件是/etc/my.cnf,不存在則新建,配上以下內容

[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數據庫

      # service mysqld restart

         登陸slave數據庫,並作以下設置

      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;

                各個參數含義:

                master_host 實現複製的主機的IP地址

                master_user 實現複製的遠程登陸master的mysql的用戶,在步驟2有設置

                master_password 實現複製的遠程登陸master的mysql的面,在步驟2有設置

                master_log_file 實現複製的binlog日誌文件 在步驟3標紅的框框中

                master_log_pos 實現複製的binlog日誌文件的偏移量 在步驟3標紅的框框中

      mysql> start slave;

    查看slave從機的狀態

                mysql> show slave status \G

      

      

      若圖中標記的那兩項的值爲Yes,則表示slave設置成功

  五、關閉掉主數據庫的讀取鎖定

         mysql> unlock tables;

  六、測試

    前面沒出問題的話,那麼master上的數據操做都會同步到slave上

文檔地址

  點這裏

相關文章
相關標籤/搜索